From 59c9fa0f3df974a2c7d218f14d996d0750f304b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4AuU=5F?= <150409561+QiuShui1012@users.noreply.github.com> Date: Thu, 21 May 2026 03:13:08 +0800 Subject: [PATCH 01/50] fix: fix checkstyle (#3492) --- .github/workflows/style_check.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/style_check.yml b/.github/workflows/style_check.yml index c47b7b6098..4792bd7783 100644 --- a/.github/workflows/style_check.yml +++ b/.github/workflows/style_check.yml @@ -14,17 +14,17 @@ jobs: uses: actions/checkout@v4 with: ref: refs/pull/${{ github.event.number }}/merge - - name: Setup Java 17 + - name: Setup Java 25 uses: actions/setup-java@v3.6.0 with: distribution: zulu - java-version: 17 + java-version: 25 - uses: reviewdog/action-setup@v1 with: reviewdog_version: latest - name: download checkstyle - run: curl -o checkstyle.jar -L https://github.com/checkstyle/checkstyle/releases/download/checkstyle-12.1.2/checkstyle-12.1.2-all.jar + run: curl -o checkstyle.jar -L https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.4.2/checkstyle-13.4.2-all.jar - name: checkstyle env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: java -jar checkstyle.jar -c style.xml -f xml src | reviewdog -f=checkstyle -name="Checkstyle" -reporter=github-pr-review -fail-level=any \ No newline at end of file + run: java -jar checkstyle.jar -c style.xml -f xml src | reviewdog -f=checkstyle -name="Checkstyle" -reporter=github-pr-review -fail-level=any From 191e585dc861594a8f2fb4c53d21505a8fe9043b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=B9=E8=8B=A5=E6=B3=A0?= <98583550+ZhuRuoLing@users.noreply.github.com> Date: Fri, 22 May 2026 02:22:04 +0800 Subject: [PATCH 02/50] =?UTF-8?q?Port=20to=2026.1=20=E7=A7=BB=E6=A4=8D?= =?UTF-8?q?=E5=88=B0=2026.1=20(#3491)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(multiphase): add merciless enchantments to required entries and processing * chore: datagen * refactor(recipe): update produce and consume handling in cauldron recipes * refactor(recipe): update fluid production logic in cauldron recipes * feat(fish_tank): add Powder Snow Fluid, add Fish Tank block and entities with usable functions and storaging * fix(fish_tank): improve item handling in FishTankBlock and FishTankBlockEntity * refactor(recipe): Refactor HasCauldron 重构炼药锅条件 (#3441) * refactor(fish_tank): enhance fluid handling and validation in FishTank and WrapUtils * refactor(fish_tank): enhance fluid handling and validation in FishTank and WrapUtils * refactor(recipe): add cauldron block validation in HasCauldron logic * chore: Update Java version to 25 and dependencies for compatibility * chore: update anvillib version to 2.0.0+snapshot.330 * refactor: update import statements to use com.mojang.logging.annotations for MethodsReturnNonnullByDefault * refactor(advancements): update triggers to use HolderGetter for entity and item types * refactor(recipe): update RegistrumRecipeProvider imports and enhance recipe handling * refactor(item): reorganize item classes into tool package and add nullability annotations * refactor: standardize float literals to uppercase 'F' and update import annotations * feat(texture): add advanced_comparator_indicator.png * refactor: replace ResourceLocation with Identifier for fluid handling * feat: add new item handler classes and refactor existing ones for resource management * fix: fix the wrong foojay version in gradle 9.x * fix: fix some of compile errors (approximately 5200 remaining) * feat(renderer): implement fluid handling and rendering for FishTank and FluidHandler components * refactor: update useItemOn method to use InteractionResult and adjust imports for cauldron blocks * refactor: remove unused Util imports and simplify interaction result handling in block classes * refactor: streamline block entity rendering by introducing BlockEntityRendererSupport and updating render state handling * refactor: enhance block entity rendering and state management for cauldron and mob blocks * refactor: enhance rendering and state management for ascending block and cauldron outlet entities * refactor: replace deprecated methods with updated alternatives for level height and random number generation * refactor: remove unused imports and streamline code structure across multiple recipe and entity classes * refactor: remove deprecated @Contract annotations and update recipe classes to use new item stack templates * refactor: update recipe serializers to use new ModRecipeSerializers and enhance recipe handling * refactor: update item handling and recipe builders to use ItemStackTemplate for improved consistency * refactor: update import statements to use the new advancements.criterion package for consistency * refactor: update Gradle configuration for improved readability and performance * refactor: simplify anvil result creation by removing unused parameters and improving method names * refactor: update blockstate handling to use lambda expressions for improved readability and performance * refactor: refactor model datagen * refactor: update entity rendering and state management for improved clarity and performance * Add AbstractArrowAccessor interface for Mixin access to AbstractArrow properties * refactor: change Level type to ServerLevel in AnvilEvent and related classes * feat: add consume effects for item properties and improve lambda usage in various classes * feat: implement extensible block entity system with new interfaces and handlers * refactor: update imports and method signatures for improved clarity and consistency * refactor: update RenderType imports and replace GuiGraphics with GuiGraphicsExtractor in multiple files * refactor: reorder and update imports for consistency across multiple classes * refactor: rename BlockEntityRendererSupport to FeatureRendererSupport and update usages across multiple files * refactor: update method signatures and variable names for consistency in GUI rendering classes * refactor: replace PacketDistributor with ClientPacketDistributor in multiple screen classes * refactor: update EmberSmithingMenu to use RecipesRecord for recipe management and clean up unused code * refactor: remove unused RenderPipelines.GUI_OPAQUE_TEXTURED_BACKGROUND references and update method signatures for consistency * refactor: migrate blocks to 1.26.1 * refactor: migrate entities to 1.26.1 * refactor: migrate entities to 1.26.1 * refactor: migrate events to 1.26.1 and cleanup blocks package * refactor: replace org.jetbrains.annotations.Nullable with org.jspecify.annotations.Nullable and update method signatures for consistency * refactor: rename package structure for block and function to item.armor and item.food respectively * refactor: remove unused overrides from item JSON files and simplify method signatures in MagnetItem * refactor: update event handling methods and improve code consistency in various classes * refactor: update interaction result handling to use InteractionResult instead of InteractionResultHolder * refactor: remove unused imports across multiple classes for cleaner code * refactor: migrate utils to 26.1 * refactor: update entity references and method calls for consistency and clarity * refactor: streamline ingredient handling and improve code clarity in crafting categories * refactor: migrate mixins to 26.1 * refactor: migrate buttons to 26.1 * refactor: enhance output handling in FishTankBlockEntity with dedicated output proxy * fix(fish_tank): correct outputting behaviour of fish tank * refactor: update item references and improve tooltip handling for consumables * refactor: update loot function registration and improve item properties handling * fix: fix checkstyle * fix: fix checkstyle * refactor: remove unnecessary @SuppressWarnings annotations and improve method parameter names * refactor: remove unnecessary @SuppressWarnings annotations and improve method parameter names * refactor: clean up mixin registrations by removing unused entries * refactor: migrate some rendering to 26.1 * refactor(hammer): migrate anvil hammer wheel to anvillib-wheel * refactor(hammer): migrate spectral weapons' rendering to 26.1 * refactor: wahtever * refactor: migrate tesla tower to 26.1 * refactor: migrate jei integration to 26.1 * refactor: migrate some rendering to 26.1 * refactor: migrate some item rendering to 26.1 * refactor: it compiles * refactor: it runs * refactor: fix datagen * chore: run datagen * chore: try to make datagen run * fix: make laser render and bloom * fix: fix datagen * fix: fix datagen and parts of gui rendering * fix: fix parts of gui rendering * fix: fix jei * fix: update anvillib version to 2.0.0+snapshot.379 * fix: make cut slabs generate * fix: make cut slabs generate * fix: update anvillib version to 2.0.0+snapshot.382 * fix: add accessors for ICacheInputOutputImpl and update recipe templates * fix: enhance ActiveSilencerBlock shape and improve tooltip handling in GUI * fix: add horizontalFacingBlock utility for block state generation * fix: bugs * fix: many bugs * fix: many bugs * fix: try fix checkstyle * fix: try fix checkstyle * fix: try fix checkstyle * fix: try fix checkstyle * fix: try fix checkstyle * fix: try fix checkstyle * fix: try fix checkstyle * fix: try fix checkstyle * fix: update annotations to use @NullMarked * fix: replace javax/jetbrains annotations with jspecify annotations * fix: remove proxy settings from gradle.properties * fix: add constructor for Block$ShapePairKey in accesstransformer.cfg * fix: remove unused public fields from accesstransformer.cfg * fix: update CI configuration for NeoForge compatibility * fix: add extra-mods configuration for anvil-lib in CI and pull request workflows * fix: refactor item and block model generation to use NonNullBiConsumer for improved clarity * fix(itemhandler): add direct access methods to PollableItemHandler to bypass overrides * fix(rendering): fix some rendering bugs * make checkstyle happy * fix cut flint slab block model * fix server launch bugs --------- Co-authored-by: Gugle Co-authored-by: QiuShui1012 <150409561+QiuShui1012@users.noreply.github.com> Co-authored-by: NightFish <101402767+dmzz-yyhyy@users.noreply.github.com> Co-authored-by: NightFish --- .../replace-blockstate-calls_27fd1c90.md | 73 + .github/workflows/ci.yml | 14 +- .github/workflows/pull_request.yml | 11 +- .github/workflows/release.yml | 4 +- build.gradle | 20 +- dependencies.gradle | 5 +- gradle.properties | 8 +- gradle/libs.versions.toml | 52 +- gradle/scripts/jars.gradle | 4 +- gradle/scripts/moddevgradle.gradle | 37 +- gradle/scripts/publishing.gradle | 8 +- gradle/scripts/resources.gradle | 24 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 10 +- .../blockstates/black_chocolate_slab.json | 2 +- .../black_reinforced_concrete.json | 13 + .../black_reinforced_concrete_slab.json | 13 + .../black_reinforced_concrete_stair.json | 209 +++ .../black_reinforced_concrete_wall.json | 90 + .../blockstates/blue_reinforced_concrete.json | 13 + .../blue_reinforced_concrete_slab.json | 13 + .../blue_reinforced_concrete_stair.json | 209 +++ .../blue_reinforced_concrete_wall.json | 90 + .../brown_reinforced_concrete.json | 13 + .../brown_reinforced_concrete_slab.json | 13 + .../brown_reinforced_concrete_stair.json | 209 +++ .../brown_reinforced_concrete_wall.json | 90 + .../blockstates/chocolate_slab.json | 2 +- .../blockstates/cut_flint_pillar.json | 7 +- .../blockstates/cyan_reinforced_concrete.json | 13 + .../cyan_reinforced_concrete_slab.json | 13 + .../cyan_reinforced_concrete_stair.json | 209 +++ .../cyan_reinforced_concrete_wall.json | 90 + .../blockstates/gray_reinforced_concrete.json | 13 + .../gray_reinforced_concrete_slab.json | 13 + .../gray_reinforced_concrete_stair.json | 209 +++ .../gray_reinforced_concrete_wall.json | 90 + .../green_reinforced_concrete.json | 13 + .../green_reinforced_concrete_slab.json | 13 + .../green_reinforced_concrete_stair.json | 209 +++ .../green_reinforced_concrete_wall.json | 90 + .../light_blue_reinforced_concrete.json | 13 + .../light_blue_reinforced_concrete_slab.json | 13 + .../light_blue_reinforced_concrete_stair.json | 209 +++ .../light_blue_reinforced_concrete_wall.json | 90 + .../light_gray_reinforced_concrete.json | 13 + .../light_gray_reinforced_concrete_slab.json | 13 + .../light_gray_reinforced_concrete_stair.json | 209 +++ .../light_gray_reinforced_concrete_wall.json | 90 + .../blockstates/lime_reinforced_concrete.json | 13 + .../lime_reinforced_concrete_slab.json | 13 + .../lime_reinforced_concrete_stair.json | 209 +++ .../lime_reinforced_concrete_wall.json | 90 + .../magenta_reinforced_concrete.json | 13 + .../magenta_reinforced_concrete_slab.json | 13 + .../magenta_reinforced_concrete_stair.json | 209 +++ .../magenta_reinforced_concrete_wall.json | 90 + .../orange_reinforced_concrete.json | 13 + .../orange_reinforced_concrete_slab.json | 13 + .../orange_reinforced_concrete_stair.json | 209 +++ .../orange_reinforced_concrete_wall.json | 90 + .../blockstates/pink_reinforced_concrete.json | 13 + .../pink_reinforced_concrete_slab.json | 13 + .../pink_reinforced_concrete_stair.json | 209 +++ .../pink_reinforced_concrete_wall.json | 90 + .../purple_reinforced_concrete.json | 13 + .../purple_reinforced_concrete_slab.json | 13 + .../purple_reinforced_concrete_stair.json | 209 +++ .../purple_reinforced_concrete_wall.json | 90 + .../blockstates/red_reinforced_concrete.json | 13 + .../red_reinforced_concrete_slab.json | 13 + .../red_reinforced_concrete_stair.json | 209 +++ .../red_reinforced_concrete_wall.json | 90 + .../reinforced_concrete_black.json | 13 - .../reinforced_concrete_black_slab.json | 13 - .../reinforced_concrete_black_stair.json | 209 --- .../reinforced_concrete_black_wall.json | 90 - .../blockstates/reinforced_concrete_blue.json | 13 - .../reinforced_concrete_blue_slab.json | 13 - .../reinforced_concrete_blue_stair.json | 209 --- .../reinforced_concrete_blue_wall.json | 90 - .../reinforced_concrete_brown.json | 13 - .../reinforced_concrete_brown_slab.json | 13 - .../reinforced_concrete_brown_stair.json | 209 --- .../reinforced_concrete_brown_wall.json | 90 - .../blockstates/reinforced_concrete_cyan.json | 13 - .../reinforced_concrete_cyan_slab.json | 13 - .../reinforced_concrete_cyan_stair.json | 209 --- .../reinforced_concrete_cyan_wall.json | 90 - .../blockstates/reinforced_concrete_gray.json | 13 - .../reinforced_concrete_gray_slab.json | 13 - .../reinforced_concrete_gray_stair.json | 209 --- .../reinforced_concrete_gray_wall.json | 90 - .../reinforced_concrete_green.json | 13 - .../reinforced_concrete_green_slab.json | 13 - .../reinforced_concrete_green_stair.json | 209 --- .../reinforced_concrete_green_wall.json | 90 - .../reinforced_concrete_light_blue.json | 13 - .../reinforced_concrete_light_blue_slab.json | 13 - .../reinforced_concrete_light_blue_stair.json | 209 --- .../reinforced_concrete_light_blue_wall.json | 90 - .../reinforced_concrete_light_gray.json | 13 - .../reinforced_concrete_light_gray_slab.json | 13 - .../reinforced_concrete_light_gray_stair.json | 209 --- .../reinforced_concrete_light_gray_wall.json | 90 - .../blockstates/reinforced_concrete_lime.json | 13 - .../reinforced_concrete_lime_slab.json | 13 - .../reinforced_concrete_lime_stair.json | 209 --- .../reinforced_concrete_lime_wall.json | 90 - .../reinforced_concrete_magenta.json | 13 - .../reinforced_concrete_magenta_slab.json | 13 - .../reinforced_concrete_magenta_stair.json | 209 --- .../reinforced_concrete_magenta_wall.json | 90 - .../reinforced_concrete_orange.json | 13 - .../reinforced_concrete_orange_slab.json | 13 - .../reinforced_concrete_orange_stair.json | 209 --- .../reinforced_concrete_orange_wall.json | 90 - .../blockstates/reinforced_concrete_pink.json | 13 - .../reinforced_concrete_pink_slab.json | 13 - .../reinforced_concrete_pink_stair.json | 209 --- .../reinforced_concrete_pink_wall.json | 90 - .../reinforced_concrete_purple.json | 13 - .../reinforced_concrete_purple_slab.json | 13 - .../reinforced_concrete_purple_stair.json | 209 --- .../reinforced_concrete_purple_wall.json | 90 - .../blockstates/reinforced_concrete_red.json | 13 - .../reinforced_concrete_red_slab.json | 13 - .../reinforced_concrete_red_stair.json | 209 --- .../reinforced_concrete_red_wall.json | 90 - .../reinforced_concrete_white.json | 13 - .../reinforced_concrete_white_slab.json | 13 - .../reinforced_concrete_white_stair.json | 209 --- .../reinforced_concrete_white_wall.json | 90 - .../reinforced_concrete_yellow.json | 13 - .../reinforced_concrete_yellow_slab.json | 13 - .../reinforced_concrete_yellow_stair.json | 209 --- .../reinforced_concrete_yellow_wall.json | 90 - .../blockstates/stamping_platform.json | 23 +- .../anvilcraft/blockstates/sugar_block.json | 6 +- .../blockstates/white_chocolate_slab.json | 2 +- .../white_reinforced_concrete.json | 13 + .../white_reinforced_concrete_slab.json | 13 + .../white_reinforced_concrete_stair.json | 209 +++ .../white_reinforced_concrete_wall.json | 90 + .../yellow_reinforced_concrete.json | 13 + .../yellow_reinforced_concrete_slab.json | 13 + .../yellow_reinforced_concrete_stair.json | 209 +++ .../yellow_reinforced_concrete_wall.json | 90 + .../anvilcraft/items/abnormal_amulet.json | 6 + .../anvilcraft/items/acceleration_ring.json | 6 + .../items/activator_sliding_rail.json | 6 + .../anvilcraft/items/active_silencer.json | 6 + .../anvilcraft/items/advanced_comparator.json | 6 + .../assets/anvilcraft/items/amber.json | 6 + .../assets/anvilcraft/items/amber_block.json | 6 + .../assets/anvilcraft/items/amethyst_axe.json | 6 + .../assets/anvilcraft/items/amethyst_hoe.json | 6 + .../anvilcraft/items/amethyst_pickaxe.json | 6 + .../anvilcraft/items/amethyst_shovel.json | 6 + .../anvilcraft/items/amethyst_sword.json | 6 + .../assets/anvilcraft/items/amulet_box.json | 6 + .../assets/anvilcraft/items/anvil_amulet.json | 6 + .../assets/anvilcraft/items/anvil_hammer.json | 6 + .../anvilcraft/items/anvil_railgun.json | 19 + .../assets/anvilcraft/items/arrow.json | 6 + .../anvilcraft/items/batch_crafter.json | 6 + .../assets/anvilcraft/items/batch_cutter.json | 6 + .../anvilcraft/items/beef_mushroom_stew.json | 6 + .../anvilcraft/items/berry_cake_block.json | 6 + .../anvilcraft/items/berry_cream_block.json | 6 + .../anvilcraft/items/black_cement_bucket.json | 10 + .../items/black_chocolate_block.json | 6 + .../items/black_chocolate_slab.json | 6 + .../items/black_chocolate_stairs.json | 6 + .../assets/anvilcraft/items/black_hole.json | 6 + .../items/black_reinforced_concrete.json | 6 + .../items/black_reinforced_concrete_slab.json | 6 + .../black_reinforced_concrete_stair.json | 6 + .../items/black_reinforced_concrete_wall.json | 6 + .../anvilcraft/items/block_comparator.json | 6 + .../anvilcraft/items/block_devourer.json | 6 + .../assets/anvilcraft/items/block_placer.json | 6 + .../anvilcraft/items/blue_cement_bucket.json | 10 + .../items/blue_reinforced_concrete.json | 6 + .../items/blue_reinforced_concrete_slab.json | 6 + .../items/blue_reinforced_concrete_stair.json | 6 + .../items/blue_reinforced_concrete_wall.json | 6 + .../assets/anvilcraft/items/brass_block.json | 6 + .../assets/anvilcraft/items/brass_ingot.json | 6 + .../assets/anvilcraft/items/brass_nugget.json | 6 + .../items/brass_pressure_plate.json | 6 + .../assets/anvilcraft/items/bronze_block.json | 6 + .../assets/anvilcraft/items/bronze_ingot.json | 6 + .../anvilcraft/items/bronze_nugget.json | 6 + .../items/bronze_pressure_plate.json | 6 + .../anvilcraft/items/brown_cement_bucket.json | 10 + .../items/brown_reinforced_concrete.json | 6 + .../items/brown_reinforced_concrete_slab.json | 6 + .../brown_reinforced_concrete_stair.json | 6 + .../items/brown_reinforced_concrete_wall.json | 6 + .../anvilcraft/items/cake_base_block.json | 6 + .../assets/anvilcraft/items/cake_block.json | 6 + .../assets/anvilcraft/items/canned_food.json | 6 + .../assets/anvilcraft/items/capacitor.json | 6 + .../anvilcraft/items/capacitor_empty.json | 6 + .../assets/anvilcraft/items/cat_amulet.json | 6 + .../items/celestial_forging_anvil.json | 6 + .../celestial_forging_anvil_amplifier.json | 6 + ...lestial_forging_anvil_fluid_interface.json | 6 + ...lestial_forging_anvil_laser_interface.json | 6 + ...ial_forging_anvil_logistics_interface.json | 6 + .../anvilcraft/items/charge_collector.json | 6 + .../items/charged_neutronium_ingot.json | 6 + .../assets/anvilcraft/items/charger.json | 6 + .../assets/anvilcraft/items/chocolate.json | 6 + .../anvilcraft/items/chocolate_black.json | 6 + .../anvilcraft/items/chocolate_block.json | 6 + .../items/chocolate_cake_block.json | 6 + .../items/chocolate_cream_block.json | 6 + .../anvilcraft/items/chocolate_slab.json | 6 + .../anvilcraft/items/chocolate_stairs.json | 6 + .../anvilcraft/items/chocolate_white.json | 6 + .../anvilcraft/items/chromatic_stone.json | 6 + .../assets/anvilcraft/items/chute.json | 6 + .../assets/anvilcraft/items/cinerite.json | 6 + .../anvilcraft/items/circuit_board.json | 6 + .../assets/anvilcraft/items/cocoa_butter.json | 6 + .../assets/anvilcraft/items/cocoa_liquor.json | 6 + .../assets/anvilcraft/items/cocoa_powder.json | 6 + .../anvilcraft/items/comrade_amulet.json | 6 + .../items/confined_energy_anvilon.json | 6 + .../items/confined_mass_anvilon.json | 6 + .../items/confined_neutronium_ingot.json | 6 + .../items/confined_space_anvilon.json | 6 + .../items/confined_time_anvilon.json | 6 + .../anvilcraft/items/confinement_chamber.json | 6 + .../anvilcraft/items/controllable_sand.json | 6 + .../anvilcraft/items/copper_nugget.json | 6 + .../items/copper_pressure_plate.json | 6 + .../anvilcraft/items/corrupted_beacon.json | 6 + .../assets/anvilcraft/items/crab_claw.json | 6 + .../assets/anvilcraft/items/crab_trap.json | 6 + .../assets/anvilcraft/items/cream.json | 6 + .../assets/anvilcraft/items/cream_block.json | 6 + .../anvilcraft/items/creamy_bread_roll.json | 6 + .../anvilcraft/items/creative_generator.json | 6 + .../anvilcraft/items/crushing_table.json | 6 + .../anvilcraft/items/cursed_gold_block.json | 6 + .../anvilcraft/items/cursed_gold_ingot.json | 6 + .../anvilcraft/items/cursed_gold_nugget.json | 6 + .../items/cut_ember_metal_block.json | 6 + .../items/cut_ember_metal_pillar.json | 6 + .../items/cut_ember_metal_slab.json | 6 + .../items/cut_ember_metal_stairs.json | 6 + .../anvilcraft/items/cut_flint_block.json | 6 + .../anvilcraft/items/cut_flint_pillar.json | 6 + .../anvilcraft/items/cut_flint_slab.json | 6 + .../anvilcraft/items/cut_flint_stairs.json | 6 + .../items/cut_frost_metal_block.json | 6 + .../items/cut_frost_metal_pillar.json | 6 + .../items/cut_frost_metal_slab.json | 6 + .../items/cut_frost_metal_stairs.json | 6 + .../items/cut_heavy_iron_block.json | 6 + .../anvilcraft/items/cut_heavy_iron_slab.json | 6 + .../items/cut_heavy_iron_stairs.json | 6 + .../items/cut_royal_steel_block.json | 6 + .../items/cut_royal_steel_pillar.json | 6 + .../items/cut_royal_steel_slab.json | 6 + .../items/cut_royal_steel_stairs.json | 6 + .../anvilcraft/items/cyan_cement_bucket.json | 10 + .../items/cyan_reinforced_concrete.json | 6 + .../items/cyan_reinforced_concrete_slab.json | 6 + .../items/cyan_reinforced_concrete_stair.json | 6 + .../items/cyan_reinforced_concrete_wall.json | 6 + .../anvilcraft/items/deepslate_lead_ore.json | 6 + .../items/deepslate_silver_ore.json | 6 + .../anvilcraft/items/deepslate_tin_ore.json | 6 + .../items/deepslate_titanium_ore.json | 6 + .../items/deepslate_tungsten_ore.json | 6 + .../items/deepslate_uranium_ore.json | 6 + .../anvilcraft/items/deepslate_zinc_ore.json | 6 + .../anvilcraft/items/deflection_ring.json | 6 + .../items/deformation_smithing_template.json | 6 + .../items/detector_sliding_rail.json | 6 + .../assets/anvilcraft/items/discharger.json | 6 + .../assets/anvilcraft/items/disk.json | 6 + .../assets/anvilcraft/items/dog_amulet.json | 6 + .../assets/anvilcraft/items/dough.json | 6 + .../assets/anvilcraft/items/dragon_rod.json | 6 + .../anvilcraft/items/earth_core_shard.json | 6 + .../items/earth_core_shard_block.json | 6 + .../items/earth_core_shard_ore.json | 6 + .../items/eight_to_one_smithing_template.json | 6 + .../assets/anvilcraft/items/ember_anvil.json | 6 + .../anvilcraft/items/ember_anvil_hammer.json | 6 + .../anvilcraft/items/ember_dragon_rod.json | 6 + .../assets/anvilcraft/items/ember_glass.json | 6 + .../anvilcraft/items/ember_grindstone.json | 6 + .../anvilcraft/items/ember_metal_axe.json | 6 + .../anvilcraft/items/ember_metal_block.json | 6 + .../items/ember_metal_heavy_halberd.json | 14 + .../anvilcraft/items/ember_metal_hoe.json | 6 + .../anvilcraft/items/ember_metal_ingot.json | 6 + .../anvilcraft/items/ember_metal_nugget.json | 6 + .../anvilcraft/items/ember_metal_pickaxe.json | 6 + .../items/ember_metal_resonator.json | 41 + .../anvilcraft/items/ember_metal_shovel.json | 6 + .../anvilcraft/items/ember_metal_sword.json | 6 + ...ember_metal_upgrade_smithing_template.json | 6 + .../items/ember_smithing_table.json | 6 + .../anvilcraft/items/emerald_amulet.json | 6 + .../assets/anvilcraft/items/end_dust.json | 6 + .../items/energy_weapon_platform.json | 6 + .../assets/anvilcraft/items/exp_bucket.json | 10 + .../assets/anvilcraft/items/exp_gem.json | 6 + .../anvilcraft/items/exp_gem_block.json | 6 + .../items/exposed_copper_pressure_plate.json | 6 + .../anvilcraft/items/feather_amulet.json | 6 + .../items/ferrite_core_magnet_block.json | 6 + .../assets/anvilcraft/items/filter.json | 6 + .../assets/anvilcraft/items/fish_tank.json | 6 + .../assets/anvilcraft/items/flint_block.json | 6 + .../assets/anvilcraft/items/flour.json | 6 + .../assets/anvilcraft/items/fluid_tank.json | 6 + .../items/four_to_one_smithing_template.json | 6 + .../assets/anvilcraft/items/frost_anvil.json | 6 + .../assets/anvilcraft/items/frost_glass.json | 6 + .../anvilcraft/items/frost_grindstone.json | 6 + .../anvilcraft/items/frost_metal_axe.json | 6 + .../anvilcraft/items/frost_metal_block.json | 6 + .../items/frost_metal_heavy_halberd.json | 14 + .../anvilcraft/items/frost_metal_hoe.json | 6 + .../anvilcraft/items/frost_metal_ingot.json | 6 + .../anvilcraft/items/frost_metal_nugget.json | 6 + .../anvilcraft/items/frost_metal_pickaxe.json | 6 + .../items/frost_metal_resonator.json | 41 + .../anvilcraft/items/frost_metal_shovel.json | 6 + .../anvilcraft/items/frost_metal_sword.json | 6 + ...frost_metal_upgrade_smithing_template.json | 6 + .../items/frost_smithing_table.json | 6 + .../assets/anvilcraft/items/gem_amulet.json | 6 + .../assets/anvilcraft/items/geode.json | 6 + .../assets/anvilcraft/items/giant_anvil.json | 6 + .../items/glowing_netherite_block.json | 6 + .../items/glowing_tungsten_block.json | 6 + .../anvilcraft/items/gray_cement_bucket.json | 10 + .../items/gray_reinforced_concrete.json | 6 + .../items/gray_reinforced_concrete_slab.json | 6 + .../items/gray_reinforced_concrete_stair.json | 6 + .../items/gray_reinforced_concrete_wall.json | 6 + .../anvilcraft/items/green_cement_bucket.json | 10 + .../items/green_reinforced_concrete.json | 6 + .../items/green_reinforced_concrete_slab.json | 6 + .../green_reinforced_concrete_stair.json | 6 + .../items/green_reinforced_concrete_wall.json | 6 + .../assets/anvilcraft/items/guide_book.json | 6 + .../anvilcraft/items/gunpowder_block.json | 6 + .../anvilcraft/items/hardend_resin.json | 6 + .../anvilcraft/items/heat_collector.json | 6 + .../items/heated_netherite_block.json | 6 + .../items/heated_tungsten_block.json | 6 + .../assets/anvilcraft/items/heater.json | 6 + .../anvilcraft/items/heavy_halberd_core.json | 6 + .../anvilcraft/items/heavy_iron_beam.json | 6 + .../anvilcraft/items/heavy_iron_block.json | 6 + .../anvilcraft/items/heavy_iron_column.json | 6 + .../anvilcraft/items/heavy_iron_door.json | 6 + .../anvilcraft/items/heavy_iron_plate.json | 6 + .../anvilcraft/items/heavy_iron_trapdoor.json | 6 + .../anvilcraft/items/heavy_iron_wall.json | 6 + .../assets/anvilcraft/items/heliostats.json | 6 + .../anvilcraft/items/hollow_magnet_block.json | 6 + .../assets/anvilcraft/items/impact_pile.json | 6 + .../items/incandescent_netherite_block.json | 6 + .../items/incandescent_tungsten_block.json | 6 + .../anvilcraft/items/induction_light.json | 6 + .../assets/anvilcraft/items/ionocraft.json | 6 + .../anvilcraft/items/ionocraft_backpack.json | 19 + .../anvilcraft/items/item_collector.json | 6 + .../anvilcraft/items/item_detector.json | 6 + .../anvilcraft/items/jewelcrafting_table.json | 6 + .../assets/anvilcraft/items/large_cake.json | 6 + .../anvilcraft/items/large_fluid_tank.json | 6 + .../anvilcraft/items/laser_receiver.json | 6 + .../assets/anvilcraft/items/lead_block.json | 6 + .../assets/anvilcraft/items/lead_ingot.json | 6 + .../assets/anvilcraft/items/lead_nugget.json | 6 + .../anvilcraft/items/lead_pressure_plate.json | 6 + .../anvilcraft/items/levitation_powder.json | 6 + .../items/levitation_powder_block.json | 6 + .../items/light_blue_cement_bucket.json | 10 + .../items/light_blue_reinforced_concrete.json | 6 + .../light_blue_reinforced_concrete_slab.json | 6 + .../light_blue_reinforced_concrete_stair.json | 6 + .../light_blue_reinforced_concrete_wall.json | 6 + .../items/light_gray_cement_bucket.json | 10 + .../items/light_gray_reinforced_concrete.json | 6 + .../light_gray_reinforced_concrete_slab.json | 6 + .../light_gray_reinforced_concrete_stair.json | 6 + .../light_gray_reinforced_concrete_wall.json | 6 + .../anvilcraft/items/lime_cement_bucket.json | 10 + .../assets/anvilcraft/items/lime_powder.json | 6 + .../items/lime_reinforced_concrete.json | 6 + .../items/lime_reinforced_concrete_slab.json | 6 + .../items/lime_reinforced_concrete_stair.json | 6 + .../items/lime_reinforced_concrete_wall.json | 6 + .../assets/anvilcraft/items/load_monitor.json | 6 + .../items/magenta_cement_bucket.json | 10 + .../items/magenta_reinforced_concrete.json | 6 + .../magenta_reinforced_concrete_slab.json | 6 + .../magenta_reinforced_concrete_stair.json | 6 + .../magenta_reinforced_concrete_wall.json | 6 + .../assets/anvilcraft/items/magnet.json | 6 + .../assets/anvilcraft/items/magnet_block.json | 6 + .../assets/anvilcraft/items/magnet_ingot.json | 6 + .../anvilcraft/items/magnetic_chute.json | 6 + .../items/magnetoelectric_core.json | 6 + .../anvilcraft/items/melt_gem_bucket.json | 10 + .../anvilcraft/items/menger_sponge.json | 6 + .../anvilcraft/items/mineral_fountain.json | 6 + .../anvilcraft/items/mob_amber_block.json | 6 + .../anvilcraft/items/multiphase_matter.json | 6 + .../items/multiphase_matter_block.json | 6 + .../items/multiphase_transcendium.json | 6 + .../assets/anvilcraft/items/multitool.json | 77 + .../anvilcraft/items/nature_amulet.json | 6 + .../anvilcraft/items/negative_matter.json | 6 + .../items/negative_matter_block.json | 6 + .../items/negative_matter_nugget.json | 6 + .../assets/anvilcraft/items/neoforge.json | 6 + .../anvilcraft/items/nesting_shulker_box.json | 6 + .../assets/anvilcraft/items/nether_dust.json | 6 + .../items/netherite_crystal_nucleus.json | 6 + .../anvilcraft/items/neutron_irradiator.json | 6 + .../anvilcraft/items/neutronium_ingot.json | 6 + .../assets/anvilcraft/items/oil_bucket.json | 10 + .../items/orange_cement_bucket.json | 10 + .../items/orange_reinforced_concrete.json | 6 + .../orange_reinforced_concrete_slab.json | 6 + .../orange_reinforced_concrete_stair.json | 6 + .../orange_reinforced_concrete_wall.json | 6 + .../items/over_nesting_shulker_box.json | 6 + .../items/overheated_ember_metal_block.json | 6 + .../assets/anvilcraft/items/overseer.json | 6 + .../items/oxidized_copper_pressure_plate.json | 6 + .../items/permutation_smithing_template.json | 6 + .../items/piezoelectric_crystal.json | 6 + .../assets/anvilcraft/items/pill.json | 6 + .../assets/anvilcraft/items/pill_box.json | 6 + .../anvilcraft/items/pink_cement_bucket.json | 10 + .../items/pink_reinforced_concrete.json | 6 + .../items/pink_reinforced_concrete_slab.json | 6 + .../items/pink_reinforced_concrete_stair.json | 6 + .../items/pink_reinforced_concrete_wall.json | 6 + .../anvilcraft/items/plutonium_block.json | 6 + .../anvilcraft/items/plutonium_ingot.json | 6 + .../anvilcraft/items/plutonium_nugget.json | 6 + .../items/plutonium_pressure_plate.json | 6 + .../items/polished_flint_block.json | 6 + .../items/polished_heavy_iron_block.json | 6 + .../items/polished_heavy_iron_slab.json | 6 + .../items/polished_heavy_iron_stairs.json | 6 + .../anvilcraft/items/power_converter_big.json | 6 + .../items/power_converter_middle.json | 6 + .../items/power_converter_small.json | 6 + .../items/powered_sliding_rail.json | 6 + .../anvilcraft/items/prismarine_blade.json | 6 + .../anvilcraft/items/prismarine_cluster.json | 6 + .../assets/anvilcraft/items/processor.json | 6 + .../anvilcraft/items/propel_piston.json | 6 + .../anvilcraft/items/pulse_generator.json | 6 + .../items/purple_cement_bucket.json | 10 + .../items/purple_reinforced_concrete.json | 6 + .../purple_reinforced_concrete_slab.json | 6 + .../purple_reinforced_concrete_stair.json | 6 + .../purple_reinforced_concrete_wall.json | 6 + .../assets/anvilcraft/items/quartz_sand.json | 6 + .../assets/anvilcraft/items/raw_lead.json | 6 + .../anvilcraft/items/raw_lead_block.json | 6 + .../assets/anvilcraft/items/raw_silver.json | 6 + .../anvilcraft/items/raw_silver_block.json | 6 + .../assets/anvilcraft/items/raw_tin.json | 6 + .../anvilcraft/items/raw_tin_block.json | 6 + .../assets/anvilcraft/items/raw_titanium.json | 6 + .../anvilcraft/items/raw_titanium_block.json | 6 + .../assets/anvilcraft/items/raw_tungsten.json | 6 + .../anvilcraft/items/raw_tungsten_block.json | 6 + .../assets/anvilcraft/items/raw_uranium.json | 6 + .../anvilcraft/items/raw_uranium_block.json | 6 + .../assets/anvilcraft/items/raw_zinc.json | 6 + .../anvilcraft/items/raw_zinc_block.json | 6 + .../anvilcraft/items/recovery_pearl.json | 6 + .../anvilcraft/items/red_cement_bucket.json | 10 + .../items/red_reinforced_concrete.json | 6 + .../items/red_reinforced_concrete_slab.json | 6 + .../items/red_reinforced_concrete_stair.json | 6 + .../items/red_reinforced_concrete_wall.json | 6 + .../items/redhot_netherite_block.json | 6 + .../items/redhot_tungsten_block.json | 6 + .../items/remote_transmission_pole.json | 6 + .../items/resentful_amber_block.json | 6 + .../assets/anvilcraft/items/resin.json | 6 + .../assets/anvilcraft/items/resin_block.json | 6 + .../anvilcraft/items/resonator_core.json | 6 + .../anvilcraft/items/rotten_flesh_block.json | 6 + .../assets/anvilcraft/items/royal_anvil.json | 6 + .../anvilcraft/items/royal_anvil_hammer.json | 6 + .../anvilcraft/items/royal_dragon_rod.json | 6 + .../anvilcraft/items/royal_grindstone.json | 6 + .../items/royal_smithing_table.json | 6 + .../anvilcraft/items/royal_steel_axe.json | 6 + .../anvilcraft/items/royal_steel_block.json | 6 + .../anvilcraft/items/royal_steel_hoe.json | 6 + .../anvilcraft/items/royal_steel_ingot.json | 6 + .../anvilcraft/items/royal_steel_nugget.json | 6 + .../anvilcraft/items/royal_steel_pickaxe.json | 6 + .../anvilcraft/items/royal_steel_shovel.json | 6 + .../anvilcraft/items/royal_steel_sword.json | 6 + ...royal_steel_upgrade_smithing_template.json | 6 + .../assets/anvilcraft/items/ruby.json | 6 + .../assets/anvilcraft/items/ruby_amulet.json | 6 + .../assets/anvilcraft/items/ruby_block.json | 6 + .../assets/anvilcraft/items/ruby_laser.json | 6 + .../assets/anvilcraft/items/ruby_prism.json | 6 + .../assets/anvilcraft/items/sapphire.json | 6 + .../anvilcraft/items/sapphire_amulet.json | 6 + .../anvilcraft/items/sapphire_block.json | 6 + .../anvilcraft/items/sea_heart_shell.json | 6 + .../items/sea_heart_shell_shard.json | 6 + .../assets/anvilcraft/items/seeds_pack.json | 6 + .../anvilcraft/items/shulker_container.json | 6 + .../anvilcraft/items/silence_amulet.json | 6 + .../assets/anvilcraft/items/silver_block.json | 6 + .../assets/anvilcraft/items/silver_ingot.json | 6 + .../anvilcraft/items/silver_nugget.json | 6 + .../items/silver_pressure_plate.json | 6 + .../anvilcraft/items/singularity_crystal.json | 6 + .../assets/anvilcraft/items/sliding_rail.json | 6 + .../anvilcraft/items/sliding_rail_stop.json | 6 + .../items/smooth_royal_steel_block.json | 6 + .../items/space_overcompressor.json | 6 + .../anvilcraft/items/spectral_anvil.json | 6 + .../anvilcraft/items/spectral_slingshot.json | 9 + .../items/spectral_weapon_launcher.json | 25 + .../anvilcraft/items/sponge_gemmule.json | 6 + .../items/stable_neutronium_ingot.json | 6 + .../anvilcraft/items/stamping_platform.json | 6 + .../anvilcraft/items/structure_tool.json | 6 + .../anvilcraft/items/sturdy_deepslate.json | 6 + .../assets/anvilcraft/items/sugar_block.json | 6 + .../anvilcraft/items/supercapacitor.json | 6 + .../items/supercapacitor_empty.json | 6 + .../supercritical_nesting_shulker_box.json | 6 + .../anvilcraft/items/tempering_glass.json | 6 + .../assets/anvilcraft/items/tesla_tower.json | 6 + .../assets/anvilcraft/items/tin_block.json | 6 + .../assets/anvilcraft/items/tin_can.json | 6 + .../assets/anvilcraft/items/tin_ingot.json | 6 + .../assets/anvilcraft/items/tin_nugget.json | 6 + .../anvilcraft/items/tin_pressure_plate.json | 6 + .../anvilcraft/items/titanium_block.json | 6 + .../anvilcraft/items/titanium_ingot.json | 6 + .../anvilcraft/items/titanium_nugget.json | 6 + .../items/titanium_pressure_plate.json | 6 + .../assets/anvilcraft/items/topaz.json | 6 + .../assets/anvilcraft/items/topaz_amulet.json | 6 + .../assets/anvilcraft/items/topaz_block.json | 6 + .../anvilcraft/items/totem_of_rage.json | 6 + .../anvilcraft/items/totem_of_recovery.json | 6 + .../anvilcraft/items/transcendence_anvil.json | 6 + .../items/transcendence_anvil_hammer.json | 6 + .../items/transcendence_dragon_rod.json | 6 + .../items/transcendence_heavy_halberd.json | 14 + .../items/transcendence_resonator.json | 41 + .../anvilcraft/items/transcendium_block.json | 6 + .../anvilcraft/items/transcendium_ingot.json | 6 + .../anvilcraft/items/transcendium_nugget.json | 6 + ...ranscendium_upgrade_smithing_template.json | 6 + .../anvilcraft/items/transmission_pole.json | 6 + .../items/transparent_crafting_table.json | 6 + .../anvilcraft/items/tungsten_block.json | 6 + .../anvilcraft/items/tungsten_ingot.json | 6 + .../anvilcraft/items/tungsten_nugget.json | 6 + .../items/tungsten_pressure_plate.json | 6 + .../items/two_to_one_smithing_template.json | 6 + .../anvilcraft/items/uranium_block.json | 6 + .../anvilcraft/items/uranium_ingot.json | 6 + .../anvilcraft/items/uranium_nugget.json | 6 + .../items/uranium_pressure_plate.json | 6 + .../assets/anvilcraft/items/utusan.json | 6 + .../items/void_energy_collector.json | 6 + .../assets/anvilcraft/items/void_matter.json | 6 + .../anvilcraft/items/void_matter_block.json | 6 + .../assets/anvilcraft/items/void_stone.json | 6 + .../weathered_copper_pressure_plate.json | 6 + .../anvilcraft/items/white_cement_bucket.json | 10 + .../items/white_chocolate_block.json | 6 + .../items/white_chocolate_slab.json | 6 + .../items/white_chocolate_stairs.json | 6 + .../assets/anvilcraft/items/white_hole.json | 6 + .../items/white_reinforced_concrete.json | 6 + .../items/white_reinforced_concrete_slab.json | 6 + .../white_reinforced_concrete_stair.json | 6 + .../items/white_reinforced_concrete_wall.json | 6 + .../assets/anvilcraft/items/wood_fiber.json | 6 + .../items/yellow_cement_bucket.json | 10 + .../items/yellow_reinforced_concrete.json | 6 + .../yellow_reinforced_concrete_slab.json | 6 + .../yellow_reinforced_concrete_stair.json | 6 + .../yellow_reinforced_concrete_wall.json | 6 + .../assets/anvilcraft/items/zinc_block.json | 6 + .../assets/anvilcraft/items/zinc_ingot.json | 6 + .../assets/anvilcraft/items/zinc_nugget.json | 6 + .../anvilcraft/items/zinc_pressure_plate.json | 6 + .../assets/anvilcraft/lang/en_ud.json | 441 ++++- .../assets/anvilcraft/lang/en_us.json | 441 ++++- .../block/black_reinforced_concrete.json | 6 + .../black_reinforced_concrete_bottom.json | 7 + .../block/black_reinforced_concrete_slab.json | 8 + .../black_reinforced_concrete_slab_top.json | 8 + .../black_reinforced_concrete_stair.json | 8 + ...black_reinforced_concrete_stair_inner.json | 8 + ...black_reinforced_concrete_stair_outer.json | 8 + .../block/black_reinforced_concrete_top.json | 7 + ...ck_reinforced_concrete_wall_inventory.json | 6 + .../black_reinforced_concrete_wall_post.json | 6 + .../black_reinforced_concrete_wall_side.json | 6 + ...ck_reinforced_concrete_wall_side_tall.json | 6 + .../block/blue_reinforced_concrete.json | 6 + .../blue_reinforced_concrete_bottom.json | 7 + .../block/blue_reinforced_concrete_slab.json | 8 + .../blue_reinforced_concrete_slab_top.json | 8 + .../block/blue_reinforced_concrete_stair.json | 8 + .../blue_reinforced_concrete_stair_inner.json | 8 + .../blue_reinforced_concrete_stair_outer.json | 8 + .../block/blue_reinforced_concrete_top.json | 7 + ...ue_reinforced_concrete_wall_inventory.json | 6 + .../blue_reinforced_concrete_wall_post.json | 6 + .../blue_reinforced_concrete_wall_side.json | 6 + ...ue_reinforced_concrete_wall_side_tall.json | 6 + .../block/brown_reinforced_concrete.json | 6 + .../brown_reinforced_concrete_bottom.json | 7 + .../block/brown_reinforced_concrete_slab.json | 8 + .../brown_reinforced_concrete_slab_top.json | 8 + .../brown_reinforced_concrete_stair.json | 8 + ...brown_reinforced_concrete_stair_inner.json | 8 + ...brown_reinforced_concrete_stair_outer.json | 8 + .../block/brown_reinforced_concrete_top.json | 7 + ...wn_reinforced_concrete_wall_inventory.json | 6 + .../brown_reinforced_concrete_wall_post.json | 6 + .../brown_reinforced_concrete_wall_side.json | 6 + ...wn_reinforced_concrete_wall_side_tall.json | 6 + .../block/cut_flint_pillar_horizontal.json | 7 - .../block/cyan_reinforced_concrete.json | 6 + .../cyan_reinforced_concrete_bottom.json | 7 + .../block/cyan_reinforced_concrete_slab.json | 8 + .../cyan_reinforced_concrete_slab_top.json | 8 + .../block/cyan_reinforced_concrete_stair.json | 8 + .../cyan_reinforced_concrete_stair_inner.json | 8 + .../cyan_reinforced_concrete_stair_outer.json | 8 + .../block/cyan_reinforced_concrete_top.json | 7 + ...an_reinforced_concrete_wall_inventory.json | 6 + .../cyan_reinforced_concrete_wall_post.json | 6 + .../cyan_reinforced_concrete_wall_side.json | 6 + ...an_reinforced_concrete_wall_side_tall.json | 6 + .../anvilcraft/models/block/ember_glass.json | 6 +- .../anvilcraft/models/block/frost_glass.json | 6 +- .../block/gray_reinforced_concrete.json | 6 + .../gray_reinforced_concrete_bottom.json | 7 + .../block/gray_reinforced_concrete_slab.json | 8 + .../gray_reinforced_concrete_slab_top.json | 8 + .../block/gray_reinforced_concrete_stair.json | 8 + .../gray_reinforced_concrete_stair_inner.json | 8 + .../gray_reinforced_concrete_stair_outer.json | 8 + .../block/gray_reinforced_concrete_top.json | 7 + ...ay_reinforced_concrete_wall_inventory.json | 6 + .../gray_reinforced_concrete_wall_post.json | 6 + .../gray_reinforced_concrete_wall_side.json | 6 + ...ay_reinforced_concrete_wall_side_tall.json | 6 + .../block/green_reinforced_concrete.json | 6 + .../green_reinforced_concrete_bottom.json | 7 + .../block/green_reinforced_concrete_slab.json | 8 + .../green_reinforced_concrete_slab_top.json | 8 + .../green_reinforced_concrete_stair.json | 8 + ...green_reinforced_concrete_stair_inner.json | 8 + ...green_reinforced_concrete_stair_outer.json | 8 + .../block/green_reinforced_concrete_top.json | 7 + ...en_reinforced_concrete_wall_inventory.json | 6 + .../green_reinforced_concrete_wall_post.json | 6 + .../green_reinforced_concrete_wall_side.json | 6 + ...en_reinforced_concrete_wall_side_tall.json | 6 + .../block/light_blue_reinforced_concrete.json | 6 + ...light_blue_reinforced_concrete_bottom.json | 7 + .../light_blue_reinforced_concrete_slab.json | 8 + ...ght_blue_reinforced_concrete_slab_top.json | 8 + .../light_blue_reinforced_concrete_stair.json | 8 + ..._blue_reinforced_concrete_stair_inner.json | 8 + ..._blue_reinforced_concrete_stair_outer.json | 8 + .../light_blue_reinforced_concrete_top.json | 7 + ...ue_reinforced_concrete_wall_inventory.json | 6 + ...ht_blue_reinforced_concrete_wall_post.json | 6 + ...ht_blue_reinforced_concrete_wall_side.json | 6 + ...ue_reinforced_concrete_wall_side_tall.json | 6 + .../block/light_gray_reinforced_concrete.json | 6 + ...light_gray_reinforced_concrete_bottom.json | 7 + .../light_gray_reinforced_concrete_slab.json | 8 + ...ght_gray_reinforced_concrete_slab_top.json | 8 + .../light_gray_reinforced_concrete_stair.json | 8 + ..._gray_reinforced_concrete_stair_inner.json | 8 + ..._gray_reinforced_concrete_stair_outer.json | 8 + .../light_gray_reinforced_concrete_top.json | 7 + ...ay_reinforced_concrete_wall_inventory.json | 6 + ...ht_gray_reinforced_concrete_wall_post.json | 6 + ...ht_gray_reinforced_concrete_wall_side.json | 6 + ...ay_reinforced_concrete_wall_side_tall.json | 6 + .../block/lime_reinforced_concrete.json | 6 + .../lime_reinforced_concrete_bottom.json | 7 + .../block/lime_reinforced_concrete_slab.json | 8 + .../lime_reinforced_concrete_slab_top.json | 8 + .../block/lime_reinforced_concrete_stair.json | 8 + .../lime_reinforced_concrete_stair_inner.json | 8 + .../lime_reinforced_concrete_stair_outer.json | 8 + .../block/lime_reinforced_concrete_top.json | 7 + ...me_reinforced_concrete_wall_inventory.json | 6 + .../lime_reinforced_concrete_wall_post.json | 6 + .../lime_reinforced_concrete_wall_side.json | 6 + ...me_reinforced_concrete_wall_side_tall.json | 6 + .../block/magenta_reinforced_concrete.json | 6 + .../magenta_reinforced_concrete_bottom.json | 7 + .../magenta_reinforced_concrete_slab.json | 8 + .../magenta_reinforced_concrete_slab_top.json | 8 + .../magenta_reinforced_concrete_stair.json | 8 + ...genta_reinforced_concrete_stair_inner.json | 8 + ...genta_reinforced_concrete_stair_outer.json | 8 + .../magenta_reinforced_concrete_top.json | 7 + ...ta_reinforced_concrete_wall_inventory.json | 6 + ...magenta_reinforced_concrete_wall_post.json | 6 + ...magenta_reinforced_concrete_wall_side.json | 6 + ...ta_reinforced_concrete_wall_side_tall.json | 6 + .../block/orange_reinforced_concrete.json | 6 + .../orange_reinforced_concrete_bottom.json | 7 + .../orange_reinforced_concrete_slab.json | 8 + .../orange_reinforced_concrete_slab_top.json | 8 + .../orange_reinforced_concrete_stair.json | 8 + ...range_reinforced_concrete_stair_inner.json | 8 + ...range_reinforced_concrete_stair_outer.json | 8 + .../block/orange_reinforced_concrete_top.json | 7 + ...ge_reinforced_concrete_wall_inventory.json | 6 + .../orange_reinforced_concrete_wall_post.json | 6 + .../orange_reinforced_concrete_wall_side.json | 6 + ...ge_reinforced_concrete_wall_side_tall.json | 6 + .../block/pink_reinforced_concrete.json | 6 + .../pink_reinforced_concrete_bottom.json | 7 + .../block/pink_reinforced_concrete_slab.json | 8 + .../pink_reinforced_concrete_slab_top.json | 8 + .../block/pink_reinforced_concrete_stair.json | 8 + .../pink_reinforced_concrete_stair_inner.json | 8 + .../pink_reinforced_concrete_stair_outer.json | 8 + .../block/pink_reinforced_concrete_top.json | 7 + ...nk_reinforced_concrete_wall_inventory.json | 6 + .../pink_reinforced_concrete_wall_post.json | 6 + .../pink_reinforced_concrete_wall_side.json | 6 + ...nk_reinforced_concrete_wall_side_tall.json | 6 + .../block/purple_reinforced_concrete.json | 6 + .../purple_reinforced_concrete_bottom.json | 7 + .../purple_reinforced_concrete_slab.json | 8 + .../purple_reinforced_concrete_slab_top.json | 8 + .../purple_reinforced_concrete_stair.json | 8 + ...urple_reinforced_concrete_stair_inner.json | 8 + ...urple_reinforced_concrete_stair_outer.json | 8 + .../block/purple_reinforced_concrete_top.json | 7 + ...le_reinforced_concrete_wall_inventory.json | 6 + .../purple_reinforced_concrete_wall_post.json | 6 + .../purple_reinforced_concrete_wall_side.json | 6 + ...le_reinforced_concrete_wall_side_tall.json | 6 + .../models/block/red_reinforced_concrete.json | 6 + .../block/red_reinforced_concrete_bottom.json | 7 + .../block/red_reinforced_concrete_slab.json | 8 + .../red_reinforced_concrete_slab_top.json | 8 + .../block/red_reinforced_concrete_stair.json | 8 + .../red_reinforced_concrete_stair_inner.json | 8 + .../red_reinforced_concrete_stair_outer.json | 8 + .../block/red_reinforced_concrete_top.json | 7 + ...ed_reinforced_concrete_wall_inventory.json | 6 + .../red_reinforced_concrete_wall_post.json | 6 + .../red_reinforced_concrete_wall_side.json | 6 + ...ed_reinforced_concrete_wall_side_tall.json | 6 + .../block/reinforced_concrete_black.json | 6 - .../block/reinforced_concrete_black_slab.json | 8 - .../reinforced_concrete_black_slab_top.json | 8 - .../reinforced_concrete_black_stair.json | 8 - ...reinforced_concrete_black_stair_inner.json | 8 - ...reinforced_concrete_black_stair_outer.json | 8 - .../reinforced_concrete_black_wall_post.json | 6 - .../reinforced_concrete_black_wall_side.json | 6 - ...nforced_concrete_black_wall_side_tall.json | 6 - .../block/reinforced_concrete_blue.json | 6 - .../block/reinforced_concrete_blue_slab.json | 8 - .../reinforced_concrete_blue_slab_top.json | 8 - .../block/reinforced_concrete_blue_stair.json | 8 - .../reinforced_concrete_blue_stair_inner.json | 8 - .../reinforced_concrete_blue_stair_outer.json | 8 - .../reinforced_concrete_blue_wall_post.json | 6 - .../reinforced_concrete_blue_wall_side.json | 6 - ...inforced_concrete_blue_wall_side_tall.json | 6 - .../reinforced_concrete_bottom_black.json | 7 - .../reinforced_concrete_bottom_blue.json | 7 - .../reinforced_concrete_bottom_brown.json | 7 - .../reinforced_concrete_bottom_cyan.json | 7 - .../reinforced_concrete_bottom_gray.json | 7 - .../reinforced_concrete_bottom_green.json | 7 - ...reinforced_concrete_bottom_light_blue.json | 7 - ...reinforced_concrete_bottom_light_gray.json | 7 - .../reinforced_concrete_bottom_lime.json | 7 - .../reinforced_concrete_bottom_magenta.json | 7 - .../reinforced_concrete_bottom_orange.json | 7 - .../reinforced_concrete_bottom_pink.json | 7 - .../reinforced_concrete_bottom_purple.json | 7 - .../block/reinforced_concrete_bottom_red.json | 7 - .../reinforced_concrete_bottom_white.json | 7 - .../reinforced_concrete_bottom_yellow.json | 7 - .../block/reinforced_concrete_brown.json | 6 - .../block/reinforced_concrete_brown_slab.json | 8 - .../reinforced_concrete_brown_slab_top.json | 8 - .../reinforced_concrete_brown_stair.json | 8 - ...reinforced_concrete_brown_stair_inner.json | 8 - ...reinforced_concrete_brown_stair_outer.json | 8 - .../reinforced_concrete_brown_wall_post.json | 6 - .../reinforced_concrete_brown_wall_side.json | 6 - ...nforced_concrete_brown_wall_side_tall.json | 6 - .../block/reinforced_concrete_cyan.json | 6 - .../block/reinforced_concrete_cyan_slab.json | 8 - .../reinforced_concrete_cyan_slab_top.json | 8 - .../block/reinforced_concrete_cyan_stair.json | 8 - .../reinforced_concrete_cyan_stair_inner.json | 8 - .../reinforced_concrete_cyan_stair_outer.json | 8 - .../reinforced_concrete_cyan_wall_post.json | 6 - .../reinforced_concrete_cyan_wall_side.json | 6 - ...inforced_concrete_cyan_wall_side_tall.json | 6 - .../block/reinforced_concrete_gray.json | 6 - .../block/reinforced_concrete_gray_slab.json | 8 - .../reinforced_concrete_gray_slab_top.json | 8 - .../block/reinforced_concrete_gray_stair.json | 8 - .../reinforced_concrete_gray_stair_inner.json | 8 - .../reinforced_concrete_gray_stair_outer.json | 8 - .../reinforced_concrete_gray_wall_post.json | 6 - .../reinforced_concrete_gray_wall_side.json | 6 - ...inforced_concrete_gray_wall_side_tall.json | 6 - .../block/reinforced_concrete_green.json | 6 - .../block/reinforced_concrete_green_slab.json | 8 - .../reinforced_concrete_green_slab_top.json | 8 - .../reinforced_concrete_green_stair.json | 8 - ...reinforced_concrete_green_stair_inner.json | 8 - ...reinforced_concrete_green_stair_outer.json | 8 - .../reinforced_concrete_green_wall_post.json | 6 - .../reinforced_concrete_green_wall_side.json | 6 - ...nforced_concrete_green_wall_side_tall.json | 6 - .../block/reinforced_concrete_light_blue.json | 6 - .../reinforced_concrete_light_blue_slab.json | 8 - ...inforced_concrete_light_blue_slab_top.json | 8 - .../reinforced_concrete_light_blue_stair.json | 8 - ...orced_concrete_light_blue_stair_inner.json | 8 - ...orced_concrete_light_blue_stair_outer.json | 8 - ...nforced_concrete_light_blue_wall_post.json | 6 - ...nforced_concrete_light_blue_wall_side.json | 6 - ...ed_concrete_light_blue_wall_side_tall.json | 6 - .../block/reinforced_concrete_light_gray.json | 6 - .../reinforced_concrete_light_gray_slab.json | 8 - ...inforced_concrete_light_gray_slab_top.json | 8 - .../reinforced_concrete_light_gray_stair.json | 8 - ...orced_concrete_light_gray_stair_inner.json | 8 - ...orced_concrete_light_gray_stair_outer.json | 8 - ...nforced_concrete_light_gray_wall_post.json | 6 - ...nforced_concrete_light_gray_wall_side.json | 6 - ...ed_concrete_light_gray_wall_side_tall.json | 6 - .../block/reinforced_concrete_lime.json | 6 - .../block/reinforced_concrete_lime_slab.json | 8 - .../reinforced_concrete_lime_slab_top.json | 8 - .../block/reinforced_concrete_lime_stair.json | 8 - .../reinforced_concrete_lime_stair_inner.json | 8 - .../reinforced_concrete_lime_stair_outer.json | 8 - .../reinforced_concrete_lime_wall_post.json | 6 - .../reinforced_concrete_lime_wall_side.json | 6 - ...inforced_concrete_lime_wall_side_tall.json | 6 - .../block/reinforced_concrete_magenta.json | 6 - .../reinforced_concrete_magenta_slab.json | 8 - .../reinforced_concrete_magenta_slab_top.json | 8 - .../reinforced_concrete_magenta_stair.json | 8 - ...inforced_concrete_magenta_stair_inner.json | 8 - ...inforced_concrete_magenta_stair_outer.json | 8 - ...reinforced_concrete_magenta_wall_post.json | 6 - ...reinforced_concrete_magenta_wall_side.json | 6 - ...orced_concrete_magenta_wall_side_tall.json | 6 - .../block/reinforced_concrete_orange.json | 6 - .../reinforced_concrete_orange_slab.json | 8 - .../reinforced_concrete_orange_slab_top.json | 8 - .../reinforced_concrete_orange_stair.json | 8 - ...einforced_concrete_orange_stair_inner.json | 8 - ...einforced_concrete_orange_stair_outer.json | 8 - .../reinforced_concrete_orange_wall_post.json | 6 - .../reinforced_concrete_orange_wall_side.json | 6 - ...forced_concrete_orange_wall_side_tall.json | 6 - .../block/reinforced_concrete_pink.json | 6 - .../block/reinforced_concrete_pink_slab.json | 8 - .../reinforced_concrete_pink_slab_top.json | 8 - .../block/reinforced_concrete_pink_stair.json | 8 - .../reinforced_concrete_pink_stair_inner.json | 8 - .../reinforced_concrete_pink_stair_outer.json | 8 - .../reinforced_concrete_pink_wall_post.json | 6 - .../reinforced_concrete_pink_wall_side.json | 6 - ...inforced_concrete_pink_wall_side_tall.json | 6 - .../block/reinforced_concrete_purple.json | 6 - .../reinforced_concrete_purple_slab.json | 8 - .../reinforced_concrete_purple_slab_top.json | 8 - .../reinforced_concrete_purple_stair.json | 8 - ...einforced_concrete_purple_stair_inner.json | 8 - ...einforced_concrete_purple_stair_outer.json | 8 - .../reinforced_concrete_purple_wall_post.json | 6 - .../reinforced_concrete_purple_wall_side.json | 6 - ...forced_concrete_purple_wall_side_tall.json | 6 - .../models/block/reinforced_concrete_red.json | 6 - .../block/reinforced_concrete_red_slab.json | 8 - .../reinforced_concrete_red_slab_top.json | 8 - .../block/reinforced_concrete_red_stair.json | 8 - .../reinforced_concrete_red_stair_inner.json | 8 - .../reinforced_concrete_red_stair_outer.json | 8 - .../reinforced_concrete_red_wall_post.json | 6 - .../reinforced_concrete_red_wall_side.json | 6 - ...einforced_concrete_red_wall_side_tall.json | 6 - .../block/reinforced_concrete_top_black.json | 7 - .../block/reinforced_concrete_top_blue.json | 7 - .../block/reinforced_concrete_top_brown.json | 7 - .../block/reinforced_concrete_top_cyan.json | 7 - .../block/reinforced_concrete_top_gray.json | 7 - .../block/reinforced_concrete_top_green.json | 7 - .../reinforced_concrete_top_light_blue.json | 7 - .../reinforced_concrete_top_light_gray.json | 7 - .../block/reinforced_concrete_top_lime.json | 7 - .../reinforced_concrete_top_magenta.json | 7 - .../block/reinforced_concrete_top_orange.json | 7 - .../block/reinforced_concrete_top_pink.json | 7 - .../block/reinforced_concrete_top_purple.json | 7 - .../block/reinforced_concrete_top_red.json | 7 - .../block/reinforced_concrete_top_white.json | 7 - .../block/reinforced_concrete_top_yellow.json | 7 - .../block/reinforced_concrete_white.json | 6 - .../block/reinforced_concrete_white_slab.json | 8 - .../reinforced_concrete_white_slab_top.json | 8 - .../reinforced_concrete_white_stair.json | 8 - ...reinforced_concrete_white_stair_inner.json | 8 - ...reinforced_concrete_white_stair_outer.json | 8 - .../reinforced_concrete_white_wall_post.json | 6 - .../reinforced_concrete_white_wall_side.json | 6 - ...nforced_concrete_white_wall_side_tall.json | 6 - .../block/reinforced_concrete_yellow.json | 6 - .../reinforced_concrete_yellow_slab.json | 8 - .../reinforced_concrete_yellow_slab_top.json | 8 - .../reinforced_concrete_yellow_stair.json | 8 - ...einforced_concrete_yellow_stair_inner.json | 8 - ...einforced_concrete_yellow_stair_outer.json | 8 - .../reinforced_concrete_yellow_wall_post.json | 6 - .../reinforced_concrete_yellow_wall_side.json | 6 - ...forced_concrete_yellow_wall_side_tall.json | 6 - .../{sugar_block1.json => sugar_block_1.json} | 0 .../{sugar_block2.json => sugar_block_2.json} | 0 .../{sugar_block3.json => sugar_block_3.json} | 0 .../models/block/tempering_glass.json | 6 +- .../block/white_reinforced_concrete.json | 6 + .../white_reinforced_concrete_bottom.json | 7 + .../block/white_reinforced_concrete_slab.json | 8 + .../white_reinforced_concrete_slab_top.json | 8 + .../white_reinforced_concrete_stair.json | 8 + ...white_reinforced_concrete_stair_inner.json | 8 + ...white_reinforced_concrete_stair_outer.json | 8 + .../block/white_reinforced_concrete_top.json | 7 + ...te_reinforced_concrete_wall_inventory.json | 6 + .../white_reinforced_concrete_wall_post.json | 6 + .../white_reinforced_concrete_wall_side.json | 6 + ...te_reinforced_concrete_wall_side_tall.json | 6 + .../block/yellow_reinforced_concrete.json | 6 + .../yellow_reinforced_concrete_bottom.json | 7 + .../yellow_reinforced_concrete_slab.json | 8 + .../yellow_reinforced_concrete_slab_top.json | 8 + .../yellow_reinforced_concrete_stair.json | 8 + ...ellow_reinforced_concrete_stair_inner.json | 8 + ...ellow_reinforced_concrete_stair_outer.json | 8 + .../block/yellow_reinforced_concrete_top.json | 7 + ...ow_reinforced_concrete_wall_inventory.json | 6 + .../yellow_reinforced_concrete_wall_post.json | 6 + .../yellow_reinforced_concrete_wall_side.json | 6 + ...ow_reinforced_concrete_wall_side_tall.json | 6 + .../models/item/acceleration_ring.json | 3 - .../models/item/activator_sliding_rail.json | 3 - .../models/item/active_silencer.json | 3 - .../models/item/advanced_comparator.json | 3 - .../anvilcraft/models/item/amber_block.json | 3 - .../assets/anvilcraft/models/item/arrow.json | 3 - .../anvilcraft/models/item/batch_crafter.json | 3 - .../anvilcraft/models/item/batch_cutter.json | 3 - .../models/item/berry_cake_block.json | 3 - .../models/item/berry_cream_block.json | 3 - .../models/item/black_cement_bucket.json | 5 - .../models/item/black_chocolate_block.json | 3 - .../models/item/black_chocolate_slab.json | 3 - .../models/item/black_chocolate_stairs.json | 3 - .../anvilcraft/models/item/black_hole.json | 3 - .../models/item/block_comparator.json | 3 - .../models/item/block_devourer.json | 3 - .../anvilcraft/models/item/block_placer.json | 3 - .../models/item/blue_cement_bucket.json | 5 - .../anvilcraft/models/item/brass_block.json | 3 - .../models/item/brass_pressure_plate.json | 3 - .../anvilcraft/models/item/bronze_block.json | 3 - .../models/item/bronze_pressure_plate.json | 3 - .../models/item/brown_cement_bucket.json | 5 - .../models/item/cake_base_block.json | 3 - .../anvilcraft/models/item/cake_block.json | 3 - .../models/item/celestial_forging_anvil.json | 3 - .../celestial_forging_anvil_amplifier.json | 3 - ...lestial_forging_anvil_fluid_interface.json | 3 - ...lestial_forging_anvil_laser_interface.json | 3 - ...ial_forging_anvil_logistics_interface.json | 3 - .../models/item/charge_collector.json | 3 - .../anvilcraft/models/item/charger.json | 3 - .../models/item/chocolate_block.json | 3 - .../models/item/chocolate_cake_block.json | 3 - .../models/item/chocolate_cream_block.json | 3 - .../models/item/chocolate_slab.json | 3 - .../models/item/chocolate_stairs.json | 3 - .../models/item/chromatic_stone.json | 3 - .../assets/anvilcraft/models/item/chute.json | 3 - .../anvilcraft/models/item/cinerite.json | 3 - .../models/item/confined_energy_anvilon.json | 3 - .../models/item/confined_mass_anvilon.json | 3 - .../item/confined_neutronium_ingot.json | 3 - .../models/item/confined_space_anvilon.json | 3 - .../models/item/confined_time_anvilon.json | 3 - .../models/item/confinement_chamber.json | 3 - .../models/item/controllable_sand.json | 3 - .../models/item/copper_pressure_plate.json | 3 - .../models/item/corrupted_beacon.json | 3 - .../anvilcraft/models/item/crab_trap.json | 3 - .../anvilcraft/models/item/cream_block.json | 3 - .../models/item/crushing_table.json | 3 - .../models/item/cursed_gold_block.json | 3 - .../models/item/cut_ember_metal_block.json | 3 - .../models/item/cut_ember_metal_pillar.json | 3 - .../models/item/cut_ember_metal_slab.json | 3 - .../models/item/cut_ember_metal_stairs.json | 3 - .../models/item/cut_flint_block.json | 3 - .../models/item/cut_flint_pillar.json | 3 - .../models/item/cut_flint_slab.json | 3 - .../models/item/cut_flint_stairs.json | 3 - .../models/item/cut_frost_metal_block.json | 3 - .../models/item/cut_frost_metal_pillar.json | 3 - .../models/item/cut_frost_metal_slab.json | 3 - .../models/item/cut_frost_metal_stairs.json | 3 - .../models/item/cut_heavy_iron_block.json | 3 - .../models/item/cut_heavy_iron_slab.json | 3 - .../models/item/cut_heavy_iron_stairs.json | 3 - .../models/item/cut_royal_steel_block.json | 3 - .../models/item/cut_royal_steel_pillar.json | 3 - .../models/item/cut_royal_steel_slab.json | 3 - .../models/item/cut_royal_steel_stairs.json | 3 - .../models/item/cyan_cement_bucket.json | 5 - .../models/item/deepslate_lead_ore.json | 3 - .../models/item/deepslate_silver_ore.json | 3 - .../models/item/deepslate_tin_ore.json | 3 - .../models/item/deepslate_titanium_ore.json | 3 - .../models/item/deepslate_tungsten_ore.json | 3 - .../models/item/deepslate_uranium_ore.json | 3 - .../models/item/deepslate_zinc_ore.json | 3 - .../models/item/deflection_ring.json | 3 - .../models/item/detector_sliding_rail.json | 3 - .../anvilcraft/models/item/discharger.json | 3 - .../models/item/earth_core_shard_block.json | 3 - .../models/item/earth_core_shard_ore.json | 3 - .../anvilcraft/models/item/ember_anvil.json | 3 - .../anvilcraft/models/item/ember_glass.json | 3 - .../models/item/ember_grindstone.json | 3 - .../models/item/ember_metal_block.json | 3 - .../models/item/ember_smithing_table.json | 3 - .../anvilcraft/models/item/end_dust.json | 3 - .../anvilcraft/models/item/exp_bucket.json | 5 - .../anvilcraft/models/item/exp_gem_block.json | 3 - .../item/exposed_copper_pressure_plate.json | 3 - .../item/ferrite_core_magnet_block.json | 3 - .../anvilcraft/models/item/fish_tank.json | 3 - .../anvilcraft/models/item/flint_block.json | 3 - .../anvilcraft/models/item/fluid_tank.json | 3 - .../anvilcraft/models/item/frost_anvil.json | 3 - .../anvilcraft/models/item/frost_glass.json | 3 - .../models/item/frost_grindstone.json | 3 - .../models/item/frost_metal_block.json | 3 - .../models/item/frost_smithing_table.json | 3 - .../anvilcraft/models/item/giant_anvil.json | 3 - .../models/item/glowing_netherite_block.json | 3 - .../models/item/glowing_tungsten_block.json | 3 - .../models/item/gray_cement_bucket.json | 5 - .../models/item/green_cement_bucket.json | 5 - .../models/item/gunpowder_block.json | 3 - .../models/item/heat_collector.json | 3 - .../models/item/heated_netherite_block.json | 3 - .../models/item/heated_tungsten_block.json | 3 - .../assets/anvilcraft/models/item/heater.json | 3 - .../models/item/heavy_iron_block.json | 3 - .../models/item/heavy_iron_column.json | 3 - .../models/item/heavy_iron_plate.json | 3 - .../models/item/heavy_iron_trapdoor.json | 3 - .../models/item/heavy_iron_wall.json | 6 - .../models/item/hollow_magnet_block.json | 3 - .../anvilcraft/models/item/impact_pile.json | 3 - .../item/incandescent_netherite_block.json | 3 - .../item/incandescent_tungsten_block.json | 3 - .../models/item/induction_light.json | 3 - .../models/item/ionocraft_backpack.json | 14 - .../models/item/item_collector.json | 3 - .../anvilcraft/models/item/item_detector.json | 3 - .../models/item/jewelcrafting_table.json | 3 - .../anvilcraft/models/item/large_cake.json | 3 - .../models/item/large_fluid_tank.json | 3 - .../models/item/laser_receiver.json | 3 - .../anvilcraft/models/item/lead_block.json | 3 - .../models/item/lead_pressure_plate.json | 3 - .../models/item/levitation_powder_block.json | 3 - .../models/item/light_blue_cement_bucket.json | 5 - .../models/item/light_gray_cement_bucket.json | 5 - .../models/item/lime_cement_bucket.json | 5 - .../anvilcraft/models/item/load_monitor.json | 3 - .../models/item/magenta_cement_bucket.json | 5 - .../anvilcraft/models/item/magnet_block.json | 3 - .../models/item/magnetic_chute.json | 3 - .../models/item/magnetoelectric_core.json | 3 - .../models/item/melt_gem_bucket.json | 5 - .../anvilcraft/models/item/menger_sponge.json | 3 - .../models/item/mineral_fountain.json | 3 - .../models/item/mob_amber_block.json | 3 - .../models/item/multiphase_matter_block.json | 3 - .../models/item/negative_matter_block.json | 3 - .../anvilcraft/models/item/neoforge.json | 3 - .../models/item/nesting_shulker_box.json | 3 - .../anvilcraft/models/item/nether_dust.json | 3 - .../models/item/neutron_irradiator.json | 3 - .../anvilcraft/models/item/oil_bucket.json | 5 - .../models/item/orange_cement_bucket.json | 5 - .../models/item/over_nesting_shulker_box.json | 3 - .../item/overheated_ember_metal_block.json | 3 - .../item/oxidized_copper_pressure_plate.json | 3 - .../models/item/piezoelectric_crystal.json | 3 - .../models/item/pink_cement_bucket.json | 5 - .../models/item/plutonium_block.json | 3 - .../models/item/plutonium_pressure_plate.json | 3 - .../models/item/polished_flint_block.json | 3 - .../item/polished_heavy_iron_block.json | 3 - .../models/item/polished_heavy_iron_slab.json | 3 - .../item/polished_heavy_iron_stairs.json | 3 - .../models/item/power_converter_big.json | 3 - .../models/item/power_converter_middle.json | 3 - .../models/item/power_converter_small.json | 3 - .../models/item/powered_sliding_rail.json | 3 - .../anvilcraft/models/item/propel_piston.json | 3 - .../models/item/pulse_generator.json | 3 - .../models/item/purple_cement_bucket.json | 5 - .../anvilcraft/models/item/quartz_sand.json | 3 - .../models/item/raw_lead_block.json | 3 - .../models/item/raw_silver_block.json | 3 - .../anvilcraft/models/item/raw_tin_block.json | 3 - .../models/item/raw_titanium_block.json | 3 - .../models/item/raw_tungsten_block.json | 3 - .../models/item/raw_uranium_block.json | 3 - .../models/item/raw_zinc_block.json | 3 - .../models/item/red_cement_bucket.json | 5 - .../models/item/redhot_netherite_block.json | 3 - .../models/item/redhot_tungsten_block.json | 3 - .../item/reinforced_concrete_black.json | 3 - .../item/reinforced_concrete_black_slab.json | 3 - .../item/reinforced_concrete_black_stair.json | 3 - .../item/reinforced_concrete_black_wall.json | 6 - .../models/item/reinforced_concrete_blue.json | 3 - .../item/reinforced_concrete_blue_slab.json | 3 - .../item/reinforced_concrete_blue_stair.json | 3 - .../item/reinforced_concrete_blue_wall.json | 6 - .../item/reinforced_concrete_brown.json | 3 - .../item/reinforced_concrete_brown_slab.json | 3 - .../item/reinforced_concrete_brown_stair.json | 3 - .../item/reinforced_concrete_brown_wall.json | 6 - .../models/item/reinforced_concrete_cyan.json | 3 - .../item/reinforced_concrete_cyan_slab.json | 3 - .../item/reinforced_concrete_cyan_stair.json | 3 - .../item/reinforced_concrete_cyan_wall.json | 6 - .../models/item/reinforced_concrete_gray.json | 3 - .../item/reinforced_concrete_gray_slab.json | 3 - .../item/reinforced_concrete_gray_stair.json | 3 - .../item/reinforced_concrete_gray_wall.json | 6 - .../item/reinforced_concrete_green.json | 3 - .../item/reinforced_concrete_green_slab.json | 3 - .../item/reinforced_concrete_green_stair.json | 3 - .../item/reinforced_concrete_green_wall.json | 6 - .../item/reinforced_concrete_light_blue.json | 3 - .../reinforced_concrete_light_blue_slab.json | 3 - .../reinforced_concrete_light_blue_stair.json | 3 - .../reinforced_concrete_light_blue_wall.json | 6 - .../item/reinforced_concrete_light_gray.json | 3 - .../reinforced_concrete_light_gray_slab.json | 3 - .../reinforced_concrete_light_gray_stair.json | 3 - .../reinforced_concrete_light_gray_wall.json | 6 - .../models/item/reinforced_concrete_lime.json | 3 - .../item/reinforced_concrete_lime_slab.json | 3 - .../item/reinforced_concrete_lime_stair.json | 3 - .../item/reinforced_concrete_lime_wall.json | 6 - .../item/reinforced_concrete_magenta.json | 3 - .../reinforced_concrete_magenta_slab.json | 3 - .../reinforced_concrete_magenta_stair.json | 3 - .../reinforced_concrete_magenta_wall.json | 6 - .../item/reinforced_concrete_orange.json | 3 - .../item/reinforced_concrete_orange_slab.json | 3 - .../reinforced_concrete_orange_stair.json | 3 - .../item/reinforced_concrete_orange_wall.json | 6 - .../models/item/reinforced_concrete_pink.json | 3 - .../item/reinforced_concrete_pink_slab.json | 3 - .../item/reinforced_concrete_pink_stair.json | 3 - .../item/reinforced_concrete_pink_wall.json | 6 - .../item/reinforced_concrete_purple.json | 3 - .../item/reinforced_concrete_purple_slab.json | 3 - .../reinforced_concrete_purple_stair.json | 3 - .../item/reinforced_concrete_purple_wall.json | 6 - .../models/item/reinforced_concrete_red.json | 3 - .../item/reinforced_concrete_red_slab.json | 3 - .../item/reinforced_concrete_red_stair.json | 3 - .../item/reinforced_concrete_red_wall.json | 6 - .../item/reinforced_concrete_white.json | 3 - .../item/reinforced_concrete_white_slab.json | 3 - .../item/reinforced_concrete_white_stair.json | 3 - .../item/reinforced_concrete_white_wall.json | 6 - .../item/reinforced_concrete_yellow.json | 3 - .../item/reinforced_concrete_yellow_slab.json | 3 - .../reinforced_concrete_yellow_stair.json | 3 - .../item/reinforced_concrete_yellow_wall.json | 6 - .../models/item/resentful_amber_block.json | 3 - .../anvilcraft/models/item/resin_block.json | 3 - .../models/item/rotten_flesh_block.json | 3 - .../anvilcraft/models/item/royal_anvil.json | 3 - .../models/item/royal_grindstone.json | 3 - .../models/item/royal_smithing_table.json | 3 - .../models/item/royal_steel_block.json | 3 - .../anvilcraft/models/item/ruby_block.json | 3 - .../anvilcraft/models/item/ruby_laser.json | 3 - .../anvilcraft/models/item/ruby_prism.json | 3 - .../models/item/sapphire_block.json | 3 - .../models/item/shulker_container.json | 3 - .../anvilcraft/models/item/silver_block.json | 3 - .../models/item/silver_pressure_plate.json | 3 - .../models/item/singularity_crystal.json | 3 - .../anvilcraft/models/item/sliding_rail.json | 3 - .../models/item/sliding_rail_stop.json | 3 - .../models/item/smooth_royal_steel_block.json | 3 - .../models/item/space_overcompressor.json | 3 - .../models/item/spectral_anvil.json | 3 - .../item/spectral_weapon_launcher_off.json | 6 + .../models/item/stamping_platform.json | 3 - .../models/item/structure_tool.json | 6 - .../models/item/sturdy_deepslate.json | 3 - .../anvilcraft/models/item/sugar_block.json | 3 - .../supercritical_nesting_shulker_box.json | 3 - .../models/item/tempering_glass.json | 3 - .../anvilcraft/models/item/tesla_tower.json | 3 - .../anvilcraft/models/item/tin_block.json | 3 - .../models/item/tin_pressure_plate.json | 3 - .../models/item/titanium_block.json | 3 - .../models/item/titanium_pressure_plate.json | 3 - .../anvilcraft/models/item/topaz_block.json | 3 - .../models/item/transcendence_anvil.json | 3 - .../models/item/transcendium_block.json | 3 - .../item/transparent_crafting_table.json | 3 - .../models/item/tungsten_block.json | 3 - .../models/item/tungsten_pressure_plate.json | 3 - .../anvilcraft/models/item/uranium_block.json | 3 - .../models/item/uranium_pressure_plate.json | 3 - .../models/item/void_energy_collector.json | 3 - .../models/item/void_matter_block.json | 3 - .../anvilcraft/models/item/void_stone.json | 3 - .../item/weathered_copper_pressure_plate.json | 3 - .../models/item/white_cement_bucket.json | 5 - .../models/item/white_chocolate_block.json | 3 - .../models/item/white_chocolate_slab.json | 3 - .../models/item/white_chocolate_stairs.json | 3 - .../anvilcraft/models/item/white_hole.json | 3 - .../models/item/yellow_cement_bucket.json | 5 - .../anvilcraft/models/item/zinc_block.json | 3 - .../models/item/zinc_pressure_plate.json | 3 - .../advancement/anvilcraft/4281.json | 1 - .../advancement/anvilcraft/all_in_one.json | 1 - .../anvilcraft/amethyst_pickaxe.json | 1 - .../anvilcraft/anvil_accelerator.json | 1 - .../advancement/anvilcraft/anvilon.json | 1 - .../anvilcraft/block_devourer.json | 1 - .../advancement/anvilcraft/block_placer.json | 1 - .../advancement/anvilcraft/crab_claw.json | 1 - .../advancement/anvilcraft/dang.json | 1 - .../advancement/anvilcraft/durable_goods.json | 1 - .../anvilcraft/electric_filed_rhythm.json | 1 - .../advancement/anvilcraft/for_aeons.json | 1 - .../anvilcraft/forged_over_eons.json | 1 - .../advancement/anvilcraft/fossick.json | 1 - .../advancement/anvilcraft/frost_metal.json | 1 - .../advancement/anvilcraft/gem_transform.json | 1 - .../advancement/anvilcraft/geode.json | 1 - .../advancement/anvilcraft/giant_age.json | 1 - .../advancement/anvilcraft/hammer.json | 1 - .../anvilcraft/hearts_of_iron.json | 1 - .../anvilcraft/heat_utilizing.json | 1 - .../advancement/anvilcraft/ice_maker.json | 1 - .../anvilcraft/industrial_grade_smelting.json | 1 - .../anvilcraft/iron_meter_reversal.json | 1 - .../anvilcraft/isotope_decay_battery.json | 1 - .../advancement/anvilcraft/laser.json | 1 - .../advancement/anvilcraft/lifting_anvil.json | 1 - .../advancement/anvilcraft/lighter.json | 1 - .../advancement/anvilcraft/networking.json | 1 - .../advancement/anvilcraft/new_matter.json | 1 - .../advancement/anvilcraft/noble_metal.json | 1 - .../advancement/anvilcraft/not_beacon.json | 1 - .../anvilcraft/nuclear_power_10a.json | 1 - .../advancement/anvilcraft/ore_point.json | 1 - .../advancement/anvilcraft/overheated.json | 1 - .../advancement/anvilcraft/overseer.json | 1 - .../advancement/anvilcraft/real_looting.json | 1 - .../anvilcraft/recycling_diamonds.json | 1 - .../anvilcraft/redstone_milker.json | 1 - .../anvilcraft/rip_van_winkle.json | 1 - .../advancement/anvilcraft/root.json | 1 - .../anvilcraft/royal_blacksmith.json | 1 - .../anvilcraft/self_in_flaming.json | 1 - .../anvilcraft/smithing_table.json | 1 - .../advancement/anvilcraft/stone_crusher.json | 1 - .../advancement/anvilcraft/super_heat.json | 1 - .../advancement/anvilcraft/super_kill.json | 1 - .../anvilcraft/tai_shang_wang_qing.json | 1 - .../advancement/anvilcraft/topaz.json | 1 - .../advancement/anvilcraft/transcendence.json | 1 - .../anvilcraft/vanilla_iron_plate.json | 1 - .../advancement/anvilcraft/wither.json | 1 - .../block_smear/waxed_copper_bars.json | 21 + .../block_smear/waxed_copper_chain.json | 21 + .../block_smear/waxed_copper_chest.json | 21 + .../waxed_copper_golem_statue.json | 21 + .../block_smear/waxed_copper_lantern.json | 21 + .../waxed_exposed_copper_bars.json | 21 + .../waxed_exposed_copper_chain.json | 21 + .../waxed_exposed_copper_chest.json | 21 + .../waxed_exposed_copper_golem_statue.json | 21 + .../waxed_exposed_copper_lantern.json | 21 + .../waxed_exposed_lightning_rod.json | 21 + .../block_smear/waxed_lightning_rod.json | 21 + .../waxed_oxidized_copper_bars.json | 21 + .../waxed_oxidized_copper_chain.json | 21 + .../waxed_oxidized_copper_chest.json | 21 + .../waxed_oxidized_copper_golem_statue.json | 21 + .../waxed_oxidized_copper_lantern.json | 21 + .../waxed_oxidized_lightning_rod.json | 21 + .../waxed_weathered_copper_bars.json | 21 + .../waxed_weathered_copper_chain.json | 21 + .../waxed_weathered_copper_chest.json | 21 + .../waxed_weathered_copper_golem_statue.json | 21 + .../waxed_weathered_copper_lantern.json | 21 + .../waxed_weathered_lightning_rod.json | 21 + .../black_reinforced_concrete_slab.json | 32 + .../black_reinforced_concrete_stair.json | 32 + .../black_reinforced_concrete_wall.json | 32 + .../blue_reinforced_concrete_slab.json | 32 + .../blue_reinforced_concrete_stair.json | 32 + .../blue_reinforced_concrete_wall.json | 32 + .../brown_reinforced_concrete_slab.json | 32 + .../brown_reinforced_concrete_stair.json | 32 + .../brown_reinforced_concrete_wall.json | 32 + .../recipes/building_blocks/comparator.json | 16 +- .../cyan_reinforced_concrete_slab.json | 32 + .../cyan_reinforced_concrete_stair.json | 32 + .../cyan_reinforced_concrete_wall.json | 32 + .../recipes/building_blocks/flint_block.json | 16 +- .../flint_from_flint_block.json | 16 +- .../gray_reinforced_concrete_slab.json | 32 + .../gray_reinforced_concrete_stair.json | 32 + .../gray_reinforced_concrete_wall.json | 32 + .../green_reinforced_concrete_slab.json | 32 + .../green_reinforced_concrete_stair.json | 32 + .../green_reinforced_concrete_wall.json | 32 + .../building_blocks/gunpowder_block.json | 16 +- .../gunpowder_from_gunpowder_block.json | 16 +- .../building_blocks/heavy_iron_block.json | 16 +- .../iron_block_from_heavy_iron_block.json | 16 +- .../light_blue_reinforced_concrete_slab.json | 32 + .../light_blue_reinforced_concrete_stair.json | 32 + .../light_blue_reinforced_concrete_wall.json | 32 + .../light_gray_reinforced_concrete_slab.json | 32 + .../light_gray_reinforced_concrete_stair.json | 32 + .../light_gray_reinforced_concrete_wall.json | 32 + .../lime_reinforced_concrete_slab.json | 32 + .../lime_reinforced_concrete_stair.json | 32 + .../lime_reinforced_concrete_wall.json | 32 + .../magenta_reinforced_concrete_slab.json | 32 + .../magenta_reinforced_concrete_stair.json | 32 + .../magenta_reinforced_concrete_wall.json | 32 + .../orange_reinforced_concrete_slab.json | 32 + .../orange_reinforced_concrete_stair.json | 32 + .../orange_reinforced_concrete_wall.json | 32 + .../pink_reinforced_concrete_slab.json | 32 + .../pink_reinforced_concrete_stair.json | 32 + .../pink_reinforced_concrete_wall.json | 32 + .../purple_reinforced_concrete_slab.json | 32 + .../purple_reinforced_concrete_stair.json | 32 + .../purple_reinforced_concrete_wall.json | 32 + .../red_reinforced_concrete_slab.json | 32 + .../red_reinforced_concrete_stair.json | 32 + .../red_reinforced_concrete_wall.json | 32 + .../reinforced_concrete_black_slab.json | 32 - .../reinforced_concrete_black_stair.json | 32 - .../reinforced_concrete_black_wall.json | 32 - .../reinforced_concrete_blue_slab.json | 32 - .../reinforced_concrete_blue_stair.json | 32 - .../reinforced_concrete_blue_wall.json | 32 - .../reinforced_concrete_brown_slab.json | 32 - .../reinforced_concrete_brown_stair.json | 32 - .../reinforced_concrete_brown_wall.json | 32 - .../reinforced_concrete_cyan_slab.json | 32 - .../reinforced_concrete_cyan_stair.json | 32 - .../reinforced_concrete_cyan_wall.json | 32 - .../reinforced_concrete_gray_slab.json | 32 - .../reinforced_concrete_gray_stair.json | 32 - .../reinforced_concrete_gray_wall.json | 32 - .../reinforced_concrete_green_slab.json | 32 - .../reinforced_concrete_green_stair.json | 32 - .../reinforced_concrete_green_wall.json | 32 - .../reinforced_concrete_light_blue_slab.json | 32 - .../reinforced_concrete_light_blue_stair.json | 32 - .../reinforced_concrete_light_blue_wall.json | 32 - .../reinforced_concrete_light_gray_slab.json | 32 - .../reinforced_concrete_light_gray_stair.json | 32 - .../reinforced_concrete_light_gray_wall.json | 32 - .../reinforced_concrete_lime_slab.json | 32 - .../reinforced_concrete_lime_stair.json | 32 - .../reinforced_concrete_lime_wall.json | 32 - .../reinforced_concrete_magenta_slab.json | 32 - .../reinforced_concrete_magenta_stair.json | 32 - .../reinforced_concrete_magenta_wall.json | 32 - .../reinforced_concrete_orange_slab.json | 32 - .../reinforced_concrete_orange_stair.json | 32 - .../reinforced_concrete_orange_wall.json | 32 - .../reinforced_concrete_pink_slab.json | 32 - .../reinforced_concrete_pink_stair.json | 32 - .../reinforced_concrete_pink_wall.json | 32 - .../reinforced_concrete_purple_slab.json | 32 - .../reinforced_concrete_purple_stair.json | 32 - .../reinforced_concrete_purple_wall.json | 32 - .../reinforced_concrete_red_slab.json | 32 - .../reinforced_concrete_red_stair.json | 32 - .../reinforced_concrete_red_wall.json | 32 - .../reinforced_concrete_white_slab.json | 32 - .../reinforced_concrete_white_stair.json | 32 - .../reinforced_concrete_white_wall.json | 32 - .../reinforced_concrete_yellow_slab.json | 32 - .../reinforced_concrete_yellow_stair.json | 32 - .../reinforced_concrete_yellow_wall.json | 32 - .../recipes/building_blocks/repeater.json | 16 +- .../building_blocks/rotten_flesh_block.json | 16 +- .../rotten_flesh_from_rotten_flesh_block.json | 16 +- .../building_blocks/royal_steel_block.json | 16 +- .../shaped/cut_flint_block.json | 16 +- .../shaped/cut_flint_pillar.json | 16 +- .../shaped/cut_flint_slab.json | 16 +- .../shaped/cut_flint_stairs.json | 16 +- .../shaped/polished_flint_block.json | 16 +- .../black_reinforced_concrete_slab.json | 32 + .../black_reinforced_concrete_stair.json | 32 + .../black_reinforced_concrete_wall.json | 32 + .../blue_reinforced_concrete_slab.json | 32 + .../blue_reinforced_concrete_stair.json | 32 + .../blue_reinforced_concrete_wall.json | 32 + .../brown_reinforced_concrete_slab.json | 32 + .../brown_reinforced_concrete_stair.json | 32 + .../brown_reinforced_concrete_wall.json | 32 + .../stonecutting/cut_ember_metal_block.json | 16 +- ...tal_pillar_from_cut_ember_metal_block.json | 16 +- ...r_metal_pillar_from_ember_metal_block.json | 16 +- ...metal_slab_from_cut_ember_metal_block.json | 16 +- ...ber_metal_slab_from_ember_metal_block.json | 16 +- ...tal_stairs_from_cut_ember_metal_block.json | 16 +- ...r_metal_stairs_from_ember_metal_block.json | 16 +- .../cut_flint_block_from_flint_block.json | 16 +- ...flint_block_from_polished_flint_block.json | 16 +- ...cut_flint_pillar_from_cut_flint_block.json | 16 +- .../cut_flint_pillar_from_flint_block.json | 16 +- ...lint_pillar_from_polished_flint_block.json | 16 +- .../cut_flint_slab_from_cut_flint_block.json | 16 +- .../cut_flint_slab_from_flint_block.json | 16 +- ..._flint_slab_from_polished_flint_block.json | 16 +- ...cut_flint_stairs_from_cut_flint_block.json | 16 +- .../cut_flint_stairs_from_flint_block.json | 16 +- ...lint_stairs_from_polished_flint_block.json | 16 +- .../stonecutting/cut_frost_metal_block.json | 16 +- ...tal_pillar_from_cut_frost_metal_block.json | 16 +- ...t_metal_pillar_from_frost_metal_block.json | 16 +- ...metal_slab_from_cut_frost_metal_block.json | 16 +- ...ost_metal_slab_from_frost_metal_block.json | 16 +- ...tal_stairs_from_cut_frost_metal_block.json | 16 +- ...t_metal_stairs_from_frost_metal_block.json | 16 +- .../stonecutting/cut_heavy_iron_block.json | 16 +- ..._block_from_polished_heavy_iron_block.json | 16 +- ...y_iron_slab_from_cut_heavy_iron_block.json | 16 +- ...heavy_iron_slab_from_heavy_iron_block.json | 16 +- ...n_slab_from_polished_heavy_iron_block.json | 16 +- ...iron_stairs_from_cut_heavy_iron_block.json | 16 +- ...avy_iron_stairs_from_heavy_iron_block.json | 16 +- ...stairs_from_polished_heavy_iron_block.json | 16 +- .../stonecutting/cut_royal_steel_block.json | 16 +- ...eel_pillar_from_cut_royal_steel_block.json | 16 +- ...l_steel_pillar_from_royal_steel_block.json | 16 +- ...steel_slab_from_cut_royal_steel_block.json | 16 +- ...yal_steel_slab_from_royal_steel_block.json | 16 +- ...eel_stairs_from_cut_royal_steel_block.json | 16 +- ...l_steel_stairs_from_royal_steel_block.json | 16 +- .../cyan_reinforced_concrete_slab.json | 32 + .../cyan_reinforced_concrete_stair.json | 32 + .../cyan_reinforced_concrete_wall.json | 32 + .../gray_reinforced_concrete_slab.json | 32 + .../gray_reinforced_concrete_stair.json | 32 + .../gray_reinforced_concrete_wall.json | 32 + .../green_reinforced_concrete_slab.json | 32 + .../green_reinforced_concrete_stair.json | 32 + .../green_reinforced_concrete_wall.json | 32 + .../stonecutting/heavy_iron_beam.json | 16 +- ...y_iron_beam_from_cut_heavy_iron_block.json | 16 +- ...n_beam_from_polished_heavy_iron_block.json | 16 +- .../stonecutting/heavy_iron_column.json | 16 +- ...iron_column_from_cut_heavy_iron_block.json | 16 +- ...column_from_polished_heavy_iron_block.json | 16 +- .../stonecutting/heavy_iron_door.json | 16 +- ...n_door_from_polished_heavy_iron_block.json | 16 +- .../stonecutting/heavy_iron_plate.json | 16 +- ..._iron_plate_from_cut_heavy_iron_block.json | 16 +- ...y_iron_plate_from_cut_heavy_iron_slab.json | 16 +- ..._plate_from_polished_heavy_iron_block.json | 16 +- ...n_plate_from_polished_heavy_iron_slab.json | 16 +- .../stonecutting/heavy_iron_trapdoor.json | 16 +- ...on_trapdoor_from_cut_heavy_iron_block.json | 16 +- ...apdoor_from_polished_heavy_iron_block.json | 16 +- .../stonecutting/heavy_iron_wall.json | 16 +- ...y_iron_wall_from_cut_heavy_iron_block.json | 16 +- ...n_wall_from_polished_heavy_iron_block.json | 16 +- .../light_blue_reinforced_concrete_slab.json | 32 + .../light_blue_reinforced_concrete_stair.json | 32 + .../light_blue_reinforced_concrete_wall.json | 32 + .../light_gray_reinforced_concrete_slab.json | 32 + .../light_gray_reinforced_concrete_stair.json | 32 + .../light_gray_reinforced_concrete_wall.json | 32 + .../lime_reinforced_concrete_slab.json | 32 + .../lime_reinforced_concrete_stair.json | 32 + .../lime_reinforced_concrete_wall.json | 32 + .../magenta_reinforced_concrete_slab.json | 32 + .../magenta_reinforced_concrete_stair.json | 32 + .../magenta_reinforced_concrete_wall.json | 32 + .../orange_reinforced_concrete_slab.json | 32 + .../orange_reinforced_concrete_stair.json | 32 + .../orange_reinforced_concrete_wall.json | 32 + .../pink_reinforced_concrete_slab.json | 32 + .../pink_reinforced_concrete_stair.json | 32 + .../pink_reinforced_concrete_wall.json | 32 + .../stonecutting/polished_flint_block.json | 16 +- .../polished_heavy_iron_block.json | 16 +- ...heavy_iron_slab_from_heavy_iron_block.json | 16 +- ...n_slab_from_polished_heavy_iron_block.json | 16 +- ...avy_iron_stairs_from_heavy_iron_block.json | 16 +- ...stairs_from_polished_heavy_iron_block.json | 16 +- .../purple_reinforced_concrete_slab.json | 32 + .../purple_reinforced_concrete_stair.json | 32 + .../purple_reinforced_concrete_wall.json | 32 + .../red_reinforced_concrete_slab.json | 32 + .../red_reinforced_concrete_stair.json | 32 + .../red_reinforced_concrete_wall.json | 32 + .../reinforced_concrete_black_slab.json | 32 - .../reinforced_concrete_black_stair.json | 32 - .../reinforced_concrete_black_wall.json | 32 - .../reinforced_concrete_blue_slab.json | 32 - .../reinforced_concrete_blue_stair.json | 32 - .../reinforced_concrete_blue_wall.json | 32 - .../reinforced_concrete_brown_slab.json | 32 - .../reinforced_concrete_brown_stair.json | 32 - .../reinforced_concrete_brown_wall.json | 32 - .../reinforced_concrete_cyan_slab.json | 32 - .../reinforced_concrete_cyan_stair.json | 32 - .../reinforced_concrete_cyan_wall.json | 32 - .../reinforced_concrete_gray_slab.json | 32 - .../reinforced_concrete_gray_stair.json | 32 - .../reinforced_concrete_gray_wall.json | 32 - .../reinforced_concrete_green_slab.json | 32 - .../reinforced_concrete_green_stair.json | 32 - .../reinforced_concrete_green_wall.json | 32 - .../reinforced_concrete_light_blue_slab.json | 32 - .../reinforced_concrete_light_blue_stair.json | 32 - .../reinforced_concrete_light_blue_wall.json | 32 - .../reinforced_concrete_light_gray_slab.json | 32 - .../reinforced_concrete_light_gray_stair.json | 32 - .../reinforced_concrete_light_gray_wall.json | 32 - .../reinforced_concrete_lime_slab.json | 32 - .../reinforced_concrete_lime_stair.json | 32 - .../reinforced_concrete_lime_wall.json | 32 - .../reinforced_concrete_magenta_slab.json | 32 - .../reinforced_concrete_magenta_stair.json | 32 - .../reinforced_concrete_magenta_wall.json | 32 - .../reinforced_concrete_orange_slab.json | 32 - .../reinforced_concrete_orange_stair.json | 32 - .../reinforced_concrete_orange_wall.json | 32 - .../reinforced_concrete_pink_slab.json | 32 - .../reinforced_concrete_pink_stair.json | 32 - .../reinforced_concrete_pink_wall.json | 32 - .../reinforced_concrete_purple_slab.json | 32 - .../reinforced_concrete_purple_stair.json | 32 - .../reinforced_concrete_purple_wall.json | 32 - .../reinforced_concrete_red_slab.json | 32 - .../reinforced_concrete_red_stair.json | 32 - .../reinforced_concrete_red_wall.json | 32 - .../reinforced_concrete_white_slab.json | 32 - .../reinforced_concrete_white_stair.json | 32 - .../reinforced_concrete_white_wall.json | 32 - .../reinforced_concrete_yellow_slab.json | 32 - .../reinforced_concrete_yellow_stair.json | 32 - .../reinforced_concrete_yellow_wall.json | 32 - .../smooth_royal_steel_block.json | 16 +- .../white_reinforced_concrete_slab.json | 32 + .../white_reinforced_concrete_stair.json | 32 + .../white_reinforced_concrete_wall.json | 32 + .../yellow_reinforced_concrete_slab.json | 32 + .../yellow_reinforced_concrete_stair.json | 32 + .../yellow_reinforced_concrete_wall.json | 32 + .../recipes/building_blocks/sugar_block.json | 16 +- .../sugar_from_sugar_block.json | 16 +- .../recipes/building_blocks/wet_sponge.json | 16 +- .../white_reinforced_concrete_slab.json | 32 + .../white_reinforced_concrete_stair.json | 32 + .../white_reinforced_concrete_wall.json | 32 + .../yellow_reinforced_concrete_slab.json | 32 + .../yellow_reinforced_concrete_stair.json | 32 + .../yellow_reinforced_concrete_wall.json | 32 + .../netherite_upgrade_smithing_template.json | 21 + .../advancement/recipes/combat/trident.json | 16 +- ...ember_metal_upgrade_smithing_template.json | 32 - .../recipes/food/chocolate_black.json | 4 +- .../recipes/food/chocolate_white.json | 4 +- .../recipes/food/cocoa_liquor.json | 8 +- .../recipes/food/creamy_bread_roll.json | 16 +- .../armor/chainmail_boots_2_chain.json | 21 - .../armor/chainmail_boots_2_iron_chain.json | 21 + .../armor/chainmail_chestplate_2_chain.json | 21 - .../chainmail_chestplate_2_iron_chain.json | 21 + .../armor/chainmail_helmet_2_chain.json | 21 - .../armor/chainmail_helmet_2_iron_chain.json | 21 + .../armor/chainmail_leggings_2_chain.json | 21 - .../chainmail_leggings_2_iron_chain.json | 21 + .../jewel_crafting/banner_patterns.json | 21 + .../recipes/jewel_crafting/music_discs.json | 21 + .../jewel_crafting/trim_templates.json | 21 + .../advancement/recipes/misc/amber.json | 16 +- .../advancement/recipes/misc/crab_trap.json | 16 +- .../advancement/recipes/misc/exp_gem.json | 16 +- .../recipes/misc/heart_of_the_sea.json | 16 +- .../recipes/misc/magnet_ingot_from_block.json | 16 +- .../misc/magnet_ingot_from_hollow_block.json | 16 +- .../recipes/misc/magnetoelectric_core.json | 16 +- .../recipes/misc/multiphase_transcendium.json | 26 +- .../advancement/recipes/misc/netherrack.json | 32 + .../advancement/recipes/misc/resin.json | 16 +- ...al_steel_ingot_from_royal_steel_block.json | 16 +- .../advancement/recipes/misc/ruby.json | 16 +- .../advancement/recipes/misc/sapphire.json | 16 +- .../recipes/misc/smithing/ember_anvil.json | 16 +- .../misc/smithing/ember_grindstone.json | 16 +- .../misc/smithing/ember_smithing_table.json | 16 +- .../recipes/misc/smithing/frost_anvil.json | 16 +- .../misc/smithing/frost_grindstone.json | 16 +- .../misc/smithing/frost_smithing_table.json | 16 +- .../recipes/misc/smithing/royal_anvil.json | 16 +- .../misc/smithing/royal_grindstone.json | 16 +- .../misc/smithing/royal_smithing_table.json | 16 +- .../misc/smithing/transcendence_anvil.json | 4 +- .../stonecutting/power_converter_middle.json | 16 +- .../power_converter_small_from_big.json | 16 +- .../power_converter_small_from_middle.json | 16 +- .../advancement/recipes/misc/topaz.json | 4 +- .../recipes/misc/totem_of_rage.json | 28 +- .../recipes/misc/totem_of_recovery.json | 28 +- .../misc/transparent_crafting_table.json | 16 +- .../mob_transform/allay.json | 0 .../mob_transform/bat.json | 0 .../mob_transform/cow.json | 0 .../mob_transform/guardian.json | 0 .../mob_transform/horse.json | 0 .../mob_transform/iron_golem.json | 0 .../mob_transform/pig.json | 0 .../mob_transform/piglin.json | 0 .../mob_transform/skeleton.json | 0 .../mob_transform/villager.json | 0 .../mob_transform/zombie.json | 0 .../zombie_to_giant_anvil.json | 0 .../uranium_block_explosion.json | 21 + .../recipes/redstone/empty_propel_piston.json | 32 + .../recipes/redstone/hollow_magnet_block.json | 16 +- .../recipes/redstone/magnet_block.json | 16 +- .../eight_to_one_smithing_template.json | 21 + .../four_to_one_smithing_template.json | 21 + .../two_to_one_smithing_template.json | 21 + .../eight_to_one_smithing_template.json | 21 - .../four_to_one_smithing_template.json | 21 - .../two_to_one_smithing_template.json | 21 - .../recipes/time_warp/amber_block.json | 13 +- .../time_warp/frost_metal_ingot_0.json | 13 +- .../time_warp/frost_metal_ingot_1.json | 24 +- .../time_warp/frost_metal_ingot_2.json | 24 +- .../time_warp/frost_metal_ingot_3.json | 24 +- .../recipes/time_warp/mob_amber_block.json | 13 +- .../time_warp/resentful_amber_block.json | 13 +- .../recipes/tools/amethyst_axe.json | 16 +- .../recipes/tools/amethyst_hoe.json | 16 +- .../recipes/tools/amethyst_pickaxe.json | 16 +- .../recipes/tools/amethyst_shovel.json | 16 +- .../recipes/tools/amethyst_sword.json | 16 +- .../advancement/recipes/tools/guide_book.json | 43 +- .../advancement/recipes/tools/magnet.json | 16 +- .../recipes/tools/recovery_pearl.json | 16 +- .../tools/smithing/ember_anvil_hammer.json | 16 +- .../tools/smithing/ember_dragon_rod.json | 16 +- .../tools/smithing/ember_metal_axe.json | 16 +- .../tools/smithing/ember_metal_hoe.json | 16 +- .../tools/smithing/ember_metal_pickaxe.json | 16 +- .../tools/smithing/ember_metal_shovel.json | 16 +- .../tools/smithing/ember_metal_sword.json | 16 +- .../tools/smithing/frost_metal_axe.json | 16 +- .../tools/smithing/frost_metal_hoe.json | 16 +- .../tools/smithing/frost_metal_pickaxe.json | 16 +- .../tools/smithing/frost_metal_shovel.json | 16 +- .../tools/smithing/frost_metal_sword.json | 16 +- .../tools/smithing/royal_anvil_hammer.json | 16 +- .../tools/smithing/royal_steel_axe.json | 16 +- .../tools/smithing/royal_steel_hoe.json | 16 +- .../tools/smithing/royal_steel_pickaxe.json | 16 +- .../tools/smithing/royal_steel_shovel.json | 16 +- .../tools/smithing/royal_steel_sword.json | 16 +- .../smithing/transcendence_anvil_hammer.json | 4 +- .../smithing/transcendence_dragon_rod.json | 4 +- .../disintegration_loot_modifier.json | 4 - .../smelting_loot_modifier.json | 4 - .../loot_table/advancement/root.json | 16 - .../blocks/black_reinforced_concrete.json | 21 + .../black_reinforced_concrete_slab.json | 35 + .../black_reinforced_concrete_stair.json | 21 + .../black_reinforced_concrete_wall.json | 21 + .../blocks/blue_reinforced_concrete.json | 21 + .../blocks/blue_reinforced_concrete_slab.json | 35 + .../blue_reinforced_concrete_stair.json | 21 + .../blocks/blue_reinforced_concrete_wall.json | 21 + .../blocks/brown_reinforced_concrete.json | 21 + .../brown_reinforced_concrete_slab.json | 35 + .../brown_reinforced_concrete_stair.json | 21 + .../brown_reinforced_concrete_wall.json | 21 + .../blocks/cyan_reinforced_concrete.json | 21 + .../blocks/cyan_reinforced_concrete_slab.json | 35 + .../cyan_reinforced_concrete_stair.json | 21 + .../blocks/cyan_reinforced_concrete_wall.json | 21 + .../loot_table/blocks/fire_cauldron.json | 21 - .../blocks/gray_reinforced_concrete.json | 21 + .../blocks/gray_reinforced_concrete_slab.json | 35 + .../gray_reinforced_concrete_stair.json | 21 + .../blocks/gray_reinforced_concrete_wall.json | 21 + .../blocks/green_reinforced_concrete.json | 21 + .../green_reinforced_concrete_slab.json | 35 + .../green_reinforced_concrete_stair.json | 21 + .../green_reinforced_concrete_wall.json | 21 + .../light_blue_reinforced_concrete.json | 21 + .../light_blue_reinforced_concrete_slab.json | 35 + .../light_blue_reinforced_concrete_stair.json | 21 + .../light_blue_reinforced_concrete_wall.json | 21 + .../light_gray_reinforced_concrete.json | 21 + .../light_gray_reinforced_concrete_slab.json | 35 + .../light_gray_reinforced_concrete_stair.json | 21 + .../light_gray_reinforced_concrete_wall.json | 21 + .../blocks/lime_reinforced_concrete.json | 21 + .../blocks/lime_reinforced_concrete_slab.json | 35 + .../lime_reinforced_concrete_stair.json | 21 + .../blocks/lime_reinforced_concrete_wall.json | 21 + .../blocks/magenta_reinforced_concrete.json | 21 + .../magenta_reinforced_concrete_slab.json | 35 + .../magenta_reinforced_concrete_stair.json | 21 + .../magenta_reinforced_concrete_wall.json | 21 + .../blocks/orange_reinforced_concrete.json | 21 + .../orange_reinforced_concrete_slab.json | 35 + .../orange_reinforced_concrete_stair.json | 21 + .../orange_reinforced_concrete_wall.json | 21 + .../blocks/pink_reinforced_concrete.json | 21 + .../blocks/pink_reinforced_concrete_slab.json | 35 + .../pink_reinforced_concrete_stair.json | 21 + .../blocks/pink_reinforced_concrete_wall.json | 21 + .../blocks/purple_reinforced_concrete.json | 21 + .../purple_reinforced_concrete_slab.json | 35 + .../purple_reinforced_concrete_stair.json | 21 + .../purple_reinforced_concrete_wall.json | 21 + .../blocks/red_reinforced_concrete.json | 21 + .../blocks/red_reinforced_concrete_slab.json | 35 + .../blocks/red_reinforced_concrete_stair.json | 21 + .../blocks/red_reinforced_concrete_wall.json | 21 + .../blocks/reinforced_concrete_black.json | 21 - .../reinforced_concrete_black_slab.json | 35 - .../reinforced_concrete_black_stair.json | 21 - .../reinforced_concrete_black_wall.json | 21 - .../blocks/reinforced_concrete_blue.json | 21 - .../blocks/reinforced_concrete_blue_slab.json | 35 - .../reinforced_concrete_blue_stair.json | 21 - .../blocks/reinforced_concrete_blue_wall.json | 21 - .../blocks/reinforced_concrete_brown.json | 21 - .../reinforced_concrete_brown_slab.json | 35 - .../reinforced_concrete_brown_stair.json | 21 - .../reinforced_concrete_brown_wall.json | 21 - .../blocks/reinforced_concrete_cyan.json | 21 - .../blocks/reinforced_concrete_cyan_slab.json | 35 - .../reinforced_concrete_cyan_stair.json | 21 - .../blocks/reinforced_concrete_cyan_wall.json | 21 - .../blocks/reinforced_concrete_gray.json | 21 - .../blocks/reinforced_concrete_gray_slab.json | 35 - .../reinforced_concrete_gray_stair.json | 21 - .../blocks/reinforced_concrete_gray_wall.json | 21 - .../blocks/reinforced_concrete_green.json | 21 - .../reinforced_concrete_green_slab.json | 35 - .../reinforced_concrete_green_stair.json | 21 - .../reinforced_concrete_green_wall.json | 21 - .../reinforced_concrete_light_blue.json | 21 - .../reinforced_concrete_light_blue_slab.json | 35 - .../reinforced_concrete_light_blue_stair.json | 21 - .../reinforced_concrete_light_blue_wall.json | 21 - .../reinforced_concrete_light_gray.json | 21 - .../reinforced_concrete_light_gray_slab.json | 35 - .../reinforced_concrete_light_gray_stair.json | 21 - .../reinforced_concrete_light_gray_wall.json | 21 - .../blocks/reinforced_concrete_lime.json | 21 - .../blocks/reinforced_concrete_lime_slab.json | 35 - .../reinforced_concrete_lime_stair.json | 21 - .../blocks/reinforced_concrete_lime_wall.json | 21 - .../blocks/reinforced_concrete_magenta.json | 21 - .../reinforced_concrete_magenta_slab.json | 35 - .../reinforced_concrete_magenta_stair.json | 21 - .../reinforced_concrete_magenta_wall.json | 21 - .../blocks/reinforced_concrete_orange.json | 21 - .../reinforced_concrete_orange_slab.json | 35 - .../reinforced_concrete_orange_stair.json | 21 - .../reinforced_concrete_orange_wall.json | 21 - .../blocks/reinforced_concrete_pink.json | 21 - .../blocks/reinforced_concrete_pink_slab.json | 35 - .../reinforced_concrete_pink_stair.json | 21 - .../blocks/reinforced_concrete_pink_wall.json | 21 - .../blocks/reinforced_concrete_purple.json | 21 - .../reinforced_concrete_purple_slab.json | 35 - .../reinforced_concrete_purple_stair.json | 21 - .../reinforced_concrete_purple_wall.json | 21 - .../blocks/reinforced_concrete_red.json | 21 - .../blocks/reinforced_concrete_red_slab.json | 35 - .../blocks/reinforced_concrete_red_stair.json | 21 - .../blocks/reinforced_concrete_red_wall.json | 21 - .../blocks/reinforced_concrete_white.json | 21 - .../reinforced_concrete_white_slab.json | 35 - .../reinforced_concrete_white_stair.json | 21 - .../reinforced_concrete_white_wall.json | 21 - .../blocks/reinforced_concrete_yellow.json | 21 - .../reinforced_concrete_yellow_slab.json | 35 - .../reinforced_concrete_yellow_stair.json | 21 - .../reinforced_concrete_yellow_wall.json | 21 - .../blocks/white_reinforced_concrete.json | 21 + .../white_reinforced_concrete_slab.json | 35 + .../white_reinforced_concrete_stair.json | 21 + .../white_reinforced_concrete_wall.json | 21 + .../blocks/yellow_reinforced_concrete.json | 21 + .../yellow_reinforced_concrete_slab.json | 35 + .../yellow_reinforced_concrete_stair.json | 21 + .../yellow_reinforced_concrete_wall.json | 21 + .../entities/beheading/minecraft/creeper.json | 116 -- .../beheading/minecraft/ender_dragon.json | 116 -- .../entities/beheading/minecraft/piglin.json | 116 -- .../entities/beheading/minecraft/player.json | 134 -- .../beheading/minecraft/skeleton.json | 116 -- .../beheading/minecraft/wither_skeleton.json | 116 -- .../entities/beheading/minecraft/zombie.json | 116 -- .../loot_table/gameplay/crab_trap/common.json | 27 - .../loot_table/gameplay/crab_trap/jungle.json | 36 - .../loot_table/gameplay/crab_trap/ocean.json | 47 - .../loot_table/gameplay/crab_trap/river.json | 31 - .../loot_table/gameplay/crab_trap/swamp.json | 31 - .../gameplay/crab_trap/warm_ocean.json | 40 - .../recipe/activator_sliding_rail.json | 8 +- .../anvilcraft/recipe/active_silencer.json | 17 +- .../recipe/active_silencer_old.json | 13 +- .../recipe/advanced_comparator.json | 17 +- .../data/anvilcraft/recipe/amber.json | 4 +- .../data/anvilcraft/recipe/amber_block.json | 5 +- .../data/anvilcraft/recipe/amethyst_axe.json | 16 +- .../data/anvilcraft/recipe/amethyst_hoe.json | 16 +- .../anvilcraft/recipe/amethyst_pickaxe.json | 13 +- .../anvilcraft/recipe/amethyst_shovel.json | 13 +- .../anvilcraft/recipe/amethyst_sword.json | 16 +- .../data/anvilcraft/recipe/anvil_9.json | 8 +- .../data/anvilcraft/recipe/anvil_hammer.json | 13 +- .../data/anvilcraft/recipe/batch_crafter.json | 17 +- .../data/anvilcraft/recipe/batch_cutter.json | 17 +- .../recipe/black_chocolate_block.json | 5 +- .../recipe/black_chocolate_from_block.json | 4 +- .../recipe/black_chocolate_slab.json | 4 +- .../recipe/black_chocolate_stairs.json | 4 +- .../black_reinforced_concrete_slab.json | 14 + .../black_reinforced_concrete_stair.json | 16 + .../black_reinforced_concrete_wall.json | 15 + .../recipe/blasting/lead_ingot.json | 5 +- .../recipe/blasting/lead_ingot_from_ore.json | 5 +- .../recipe/blasting/silver_ingot.json | 5 +- .../blasting/silver_ingot_from_ore.json | 5 +- .../anvilcraft/recipe/blasting/tin_ingot.json | 5 +- .../recipe/blasting/tin_ingot_from_ore.json | 5 +- .../recipe/blasting/titanium_ingot.json | 5 +- .../blasting/titanium_ingot_from_ore.json | 5 +- .../recipe/blasting/tungsten_ingot.json | 5 +- .../blasting/tungsten_ingot_from_ore.json | 5 +- .../recipe/blasting/uranium_ingot.json | 5 +- .../blasting/uranium_ingot_from_ore.json | 5 +- .../recipe/blasting/zinc_ingot.json | 5 +- .../recipe/blasting/zinc_ingot_from_ore.json | 5 +- .../anvilcraft/recipe/block_comparator.json | 17 +- .../anvilcraft/recipe/block_devourer.json | 17 +- .../data/anvilcraft/recipe/block_placer.json | 17 +- .../recipe/block_smear/waxed_copper_bars.json | 14 + .../block_smear/waxed_copper_chain.json | 14 + .../block_smear/waxed_copper_chest.json | 14 + .../waxed_copper_golem_statue.json | 14 + .../block_smear/waxed_copper_lantern.json | 14 + .../waxed_exposed_copper_bars.json | 14 + .../waxed_exposed_copper_chain.json | 14 + .../waxed_exposed_copper_chest.json | 14 + .../waxed_exposed_copper_golem_statue.json | 14 + .../waxed_exposed_copper_lantern.json | 14 + .../waxed_exposed_lightning_rod.json | 14 + .../block_smear/waxed_lightning_rod.json | 14 + .../waxed_oxidized_copper_bars.json | 14 + .../waxed_oxidized_copper_chain.json | 14 + .../waxed_oxidized_copper_chest.json | 14 + .../waxed_oxidized_copper_golem_statue.json | 14 + .../waxed_oxidized_copper_lantern.json | 14 + .../waxed_oxidized_lightning_rod.json | 14 + .../waxed_weathered_copper_bars.json | 14 + .../waxed_weathered_copper_chain.json | 14 + .../waxed_weathered_copper_chest.json | 14 + .../waxed_weathered_copper_golem_statue.json | 14 + .../waxed_weathered_copper_lantern.json | 14 + .../waxed_weathered_lightning_rod.json | 14 + .../recipe/blue_reinforced_concrete_slab.json | 14 + .../blue_reinforced_concrete_stair.json | 16 + .../recipe/blue_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/brass_block.json | 5 +- .../data/anvilcraft/recipe/brass_ingot.json | 5 +- .../recipe/brass_ingot_from_block.json | 4 +- .../data/anvilcraft/recipe/brass_nugget.json | 4 +- ...rass_pressure_plate_from_ingots_brass.json | 5 +- .../data/anvilcraft/recipe/bronze_block.json | 5 +- .../data/anvilcraft/recipe/bronze_ingot.json | 5 +- .../recipe/bronze_ingot_from_block.json | 4 +- .../data/anvilcraft/recipe/bronze_nugget.json | 4 +- ...nze_pressure_plate_from_ingots_bronze.json | 5 +- .../brown_reinforced_concrete_slab.json | 14 + .../brown_reinforced_concrete_stair.json | 16 + .../brown_reinforced_concrete_wall.json | 15 + .../recipe/bulging/cement_cauldron.json | 2 + .../netherite_upgrade_smithing_template.json | 14 + .../recipe/bulging/prismarine_cluster.json | 2 +- .../anvilcraft/recipe/bulging/wet_sponge.json | 2 +- .../recipe/campfire_cooking_bread.json | 5 +- .../data/anvilcraft/recipe/canned_food.json | 3 +- .../anvilcraft/recipe/capacitor_empty.json | 9 +- .../anvilcraft/recipe/charge_collector.json | 13 +- .../data/anvilcraft/recipe/charger.json | 17 +- .../recipe/charger_charging/capacitor.json | 5 +- .../charger_charging/capacitor_empty.json | 5 +- .../charged_neutronium_ingot.json | 5 +- .../recipe/charger_charging/magnet_ingot.json | 5 +- .../charger_charging/neutronium_ingot.json | 5 +- .../charger_charging/supercapacitor.json | 5 +- .../supercapacitor_empty.json | 5 +- .../recipe/charger_from_discharger.json | 5 +- .../data/anvilcraft/recipe/chipped_anvil.json | 9 +- .../anvilcraft/recipe/chipped_anvil_9.json | 8 +- .../data/anvilcraft/recipe/chocolate.json | 16 +- .../anvilcraft/recipe/chocolate_black.json | 12 +- .../anvilcraft/recipe/chocolate_block.json | 5 +- .../recipe/chocolate_from_block.json | 4 +- .../anvilcraft/recipe/chocolate_slab.json | 4 +- .../anvilcraft/recipe/chocolate_stairs.json | 4 +- .../anvilcraft/recipe/chocolate_white.json | 12 +- .../data/anvilcraft/recipe/chute.json | 8 +- .../data/anvilcraft/recipe/circuit_board.json | 17 +- .../data/anvilcraft/recipe/cocoa_liquor.json | 12 +- .../data/anvilcraft/recipe/comparator.json | 13 +- .../anvilcraft_reinforced_concrete_black.json | 2 +- .../anvilcraft_reinforced_concrete_blue.json | 2 +- .../anvilcraft_reinforced_concrete_brown.json | 2 +- .../anvilcraft_reinforced_concrete_cyan.json | 2 +- .../anvilcraft_reinforced_concrete_gray.json | 2 +- .../anvilcraft_reinforced_concrete_green.json | 2 +- ...lcraft_reinforced_concrete_light_blue.json | 2 +- ...lcraft_reinforced_concrete_light_gray.json | 2 +- .../anvilcraft_reinforced_concrete_lime.json | 2 +- ...nvilcraft_reinforced_concrete_magenta.json | 2 +- ...anvilcraft_reinforced_concrete_orange.json | 2 +- .../anvilcraft_reinforced_concrete_pink.json | 2 +- ...anvilcraft_reinforced_concrete_purple.json | 2 +- .../anvilcraft_reinforced_concrete_red.json | 2 +- .../anvilcraft_reinforced_concrete_white.json | 2 +- ...anvilcraft_reinforced_concrete_yellow.json | 2 +- .../recipe/confinement_chamber.json | 9 +- .../anvilcraft/recipe/controllable_sand.json | 13 +- ...ember_metal_upgrade_smithing_template.json | 55 - .../recipe/copper_ingot_from_nugget.json | 37 +- .../data/anvilcraft/recipe/copper_nugget.json | 4 +- ...pper_pressure_plate_from_copper_ingot.json | 5 +- .../data/anvilcraft/recipe/crab_trap.json | 9 +- .../anvilcraft/recipe/creamy_bread_roll.json | 13 +- .../anvilcraft/recipe/cursed_gold_block.json | 5 +- ...sed_gold_ingot_from_cursed_gold_block.json | 4 +- ...ed_gold_ingot_from_cursed_gold_nugget.json | 5 +- .../anvilcraft/recipe/cursed_gold_nugget.json | 4 +- .../recipe/cyan_reinforced_concrete_slab.json | 14 + .../cyan_reinforced_concrete_stair.json | 16 + .../recipe/cyan_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/damaged_anvil.json | 9 +- .../anvilcraft/recipe/damaged_anvil_9.json | 8 +- .../amethyst_weapons_and_tools.json | 28 +- .../recipe/deformation/bowlikes.json | 16 +- .../recipe/deformation/chainmail_armors.json | 24 +- .../recipe/deformation/diamond_armors.json | 24 +- .../diamond_weapons_and_tools.json | 28 +- .../ember_metal_weapons_and_tools.json | 28 +- .../frost_metal_weapons_and_tools.json | 28 +- .../recipe/deformation/golden_armors.json | 24 +- .../deformation/golden_weapons_and_tools.json | 28 +- .../recipe/deformation/iron_armors.json | 24 +- .../deformation/iron_weapons_and_tools.json | 28 +- .../recipe/deformation/netherite_armors.json | 24 +- .../netherite_weapons_and_tools.json | 28 +- .../royal_steel_weapons_and_tools.json | 28 +- .../deformation/stone_weapons_and_tools.json | 28 +- .../deformation/wooden_weapons_and_tools.json | 28 +- .../recipe/deformation_smithing_template.json | 13 +- .../recipe/detector_sliding_rail.json | 12 +- .../recipe/discharger_from_charger.json | 5 +- .../data/anvilcraft/recipe/disk.json | 13 +- .../data/anvilcraft/recipe/dragon_rod.json | 9 +- .../anvilcraft/recipe/earth_core_shard.json | 4 +- .../recipe/earth_core_shard_block.json | 5 +- .../eight_to_one_smithing/multitool.json | 20 +- .../anvilcraft/recipe/ember_dragon_rod.json | 9 +- .../anvilcraft/recipe/ember_metal_block.json | 5 +- .../anvilcraft/recipe/ember_metal_ingot.json | 5 +- .../recipe/ember_metal_ingot_from_block.json | 4 +- .../recipe/ember_metal_nugget_from_ingot.json | 4 +- .../recipe/empty_propel_piston.json | 19 + .../energy_weapon_make/anvil_railgun.json | 1 - .../spectral_weapon_launcher.json | 1 - .../recipe/energy_weapon_platform.json | 21 +- .../data/anvilcraft/recipe/exp_gem.json | 4 +- .../data/anvilcraft/recipe/exp_gem_block.json | 5 +- .../recipe/ferrite_core_magnet_block.json | 9 +- .../data/anvilcraft/recipe/filter.json | 39 +- .../data/anvilcraft/recipe/fish_tank.json | 9 +- .../data/anvilcraft/recipe/flint_block.json | 37 +- .../recipe/flint_from_flint_block.json | 4 +- .../data/anvilcraft/recipe/fluid_tank.json | 8 +- .../ember_metal_heavy_halberd.json | 14 +- .../ember_metal_resonator.json | 14 +- .../frost_metal_heavy_halberd.json | 22 +- .../frost_metal_resonator.json | 22 +- .../four_to_one_smithing/gem_amulet.json | 4 +- .../four_to_one_smithing/nature_amulet.json | 4 +- .../anvilcraft/recipe/frost_metal_block.json | 5 +- .../anvilcraft/recipe/frost_metal_ingot.json | 5 +- .../recipe/frost_metal_ingot_from_block.json | 4 +- .../anvilcraft/recipe/frost_metal_nugget.json | 4 +- .../recipe/gray_reinforced_concrete_slab.json | 14 + .../gray_reinforced_concrete_stair.json | 16 + .../recipe/gray_reinforced_concrete_wall.json | 15 + .../green_reinforced_concrete_slab.json | 14 + .../green_reinforced_concrete_stair.json | 16 + .../green_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/guide_book.json | 17 +- .../anvilcraft/recipe/gunpowder_block.json | 37 +- .../gunpowder_from_gunpowder_block.json | 4 +- .../anvilcraft/recipe/heart_of_the_sea.json | 9 +- .../anvilcraft/recipe/heat_collector.json | 21 +- .../data/anvilcraft/recipe/heater.json | 13 +- .../anvilcraft/recipe/heavy_halberd_core.json | 9 +- .../anvilcraft/recipe/heavy_iron_block.json | 5 +- .../recipe/heliostats_biological.json | 12 +- .../recipe/heliostats_electrical.json | 16 +- .../recipe/hollow_magnet_block.json | 5 +- .../data/anvilcraft/recipe/impact_pile.json | 9 +- .../anvilcraft/recipe/induction_light.json | 8 +- .../data/anvilcraft/recipe/ionocraft.json | 13 +- .../anvilcraft/recipe/ionocraft_backpack.json | 17 +- .../iron_block_from_heavy_iron_block.json | 4 +- .../anvilcraft/recipe/item_collector.json | 17 +- .../recipe/item_compress/supercapacitor.json | 29 +- .../item_compress/supercapacitor_empty.json | 33 +- .../armor/chainmail_boots_2_chain.json | 18 - .../armor/chainmail_boots_2_iron_chain.json | 18 + .../armor/chainmail_chestplate_2_chain.json | 18 - .../chainmail_chestplate_2_iron_chain.json | 18 + .../armor/chainmail_helmet_2_chain.json | 18 - .../armor/chainmail_helmet_2_iron_chain.json | 18 + .../armor/chainmail_leggings_2_chain.json | 18 - .../chainmail_leggings_2_iron_chain.json | 18 + .../item_crush/gem_from_chromatic_stone.json | 1 - .../data/anvilcraft/recipe/item_detector.json | 17 +- .../jewel_crafting/abnormal_amulet.json | 57 +- .../recipe/jewel_crafting/anvil_amulet.json | 9 +- .../jewel_crafting/banner_patterns.json | 18 + .../recipe/jewel_crafting/cat_amulet.json | 103 +- .../recipe/jewel_crafting/comrade_amulet.json | 19 +- .../recipe/jewel_crafting/dog_amulet.json | 103 +- .../recipe/jewel_crafting/elytra.json | 107 +- .../recipe/jewel_crafting/emerald_amulet.json | 9 +- .../enchanted_golden_apple.json | 79 +- .../recipe/jewel_crafting/feather_amulet.json | 67 +- .../recipe/jewel_crafting/heavy_core.json | 391 +--- .../recipe/jewel_crafting/music_discs.json | 19 + .../recipe/jewel_crafting/ominous_bottle.json | 61 +- .../jewel_crafting/ominous_trial_key.json | 18 +- .../recipe/jewel_crafting/ruby_amulet.json | 9 +- .../jewel_crafting/sapphire_amulet.json | 9 +- .../recipe/jewel_crafting/silence_amulet.json | 55 +- .../recipe/jewel_crafting/topaz_amulet.json | 9 +- .../jewel_crafting/totem_of_undying.json | 15 +- .../recipe/jewel_crafting/trial_key.json | 9 +- .../recipe/jewel_crafting/trim_templates.json | 18 + .../recipe/jewelcrafting_table.json | 21 +- .../anvilcraft/recipe/laser_receiver.json | 17 +- .../data/anvilcraft/recipe/lead_block.json | 5 +- .../data/anvilcraft/recipe/lead_ingot.json | 5 +- .../recipe/lead_ingot_from_block.json | 4 +- .../data/anvilcraft/recipe/lead_nugget.json | 4 +- .../lead_pressure_plate_from_ingots_lead.json | 5 +- .../levitation_powder_block_from_powders.json | 37 +- .../recipe/levitation_powder_from_block.json | 4 +- .../light_blue_reinforced_concrete_slab.json | 14 + .../light_blue_reinforced_concrete_stair.json | 16 + .../light_blue_reinforced_concrete_wall.json | 15 + .../light_gray_reinforced_concrete_slab.json | 14 + .../light_gray_reinforced_concrete_stair.json | 16 + .../light_gray_reinforced_concrete_wall.json | 15 + .../recipe/lime_reinforced_concrete_slab.json | 14 + .../lime_reinforced_concrete_stair.json | 16 + .../recipe/lime_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/load_monitor.json | 8 +- .../magenta_reinforced_concrete_slab.json | 14 + .../magenta_reinforced_concrete_stair.json | 16 + .../magenta_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/magnet.json | 13 +- .../data/anvilcraft/recipe/magnet_block.json | 5 +- .../recipe/magnet_ingot_from_block.json | 4 +- .../magnet_ingot_from_hollow_block.json | 4 +- .../anvilcraft/recipe/magnetic_chute.json | 8 +- .../recipe/magnetoelectric_core.json | 13 +- .../anvilcraft_cursed_gold_block.json | 4 +- .../anvilcraft_cursed_gold_ingot.json | 4 +- .../anvilcraft_cursed_gold_nugget.json | 4 +- .../anvilcraft_ember_metal_block.json | 4 +- .../anvilcraft_ember_metal_ingot.json | 4 +- .../anvilcraft_ember_metal_nugget.json | 4 +- .../anvilcraft_heavy_iron_block.json | 4 +- .../anvilcraft_royal_steel_block.json | 4 +- .../anvilcraft_royal_steel_ingot.json | 4 +- .../anvilcraft_royal_steel_nugget.json | 4 +- .../recipe/mass_inject/c_ingots/brass.json | 4 +- .../recipe/mass_inject/c_ingots/bronze.json | 4 +- .../recipe/mass_inject/c_ingots/copper.json | 4 +- .../mass_inject/c_ingots/frost_metal.json | 4 +- .../recipe/mass_inject/c_ingots/gold.json | 4 +- .../recipe/mass_inject/c_ingots/iron.json | 4 +- .../recipe/mass_inject/c_ingots/lead.json | 4 +- .../mass_inject/c_ingots/netherite.json | 4 +- .../mass_inject/c_ingots/plutonium.json | 4 +- .../recipe/mass_inject/c_ingots/silver.json | 4 +- .../recipe/mass_inject/c_ingots/tin.json | 4 +- .../recipe/mass_inject/c_ingots/titanium.json | 4 +- .../mass_inject/c_ingots/transcendium.json | 4 +- .../recipe/mass_inject/c_ingots/tungsten.json | 4 +- .../recipe/mass_inject/c_ingots/uranium.json | 4 +- .../recipe/mass_inject/c_ingots/zinc.json | 4 +- .../recipe/mass_inject/c_nuggets/brass.json | 4 +- .../recipe/mass_inject/c_nuggets/bronze.json | 4 +- .../recipe/mass_inject/c_nuggets/copper.json | 4 +- .../mass_inject/c_nuggets/frost_metal.json | 4 +- .../recipe/mass_inject/c_nuggets/gold.json | 4 +- .../recipe/mass_inject/c_nuggets/iron.json | 4 +- .../recipe/mass_inject/c_nuggets/lead.json | 4 +- .../mass_inject/c_nuggets/netherite.json | 4 +- .../mass_inject/c_nuggets/plutonium.json | 4 +- .../recipe/mass_inject/c_nuggets/silver.json | 4 +- .../recipe/mass_inject/c_nuggets/tin.json | 4 +- .../mass_inject/c_nuggets/titanium.json | 4 +- .../mass_inject/c_nuggets/transcendium.json | 4 +- .../mass_inject/c_nuggets/tungsten.json | 4 +- .../recipe/mass_inject/c_nuggets/uranium.json | 4 +- .../recipe/mass_inject/c_nuggets/zinc.json | 4 +- .../mass_inject/c_storage_blocks/brass.json | 4 +- .../mass_inject/c_storage_blocks/bronze.json | 4 +- .../mass_inject/c_storage_blocks/copper.json | 4 +- .../c_storage_blocks/frost_metal.json | 4 +- .../mass_inject/c_storage_blocks/gold.json | 4 +- .../mass_inject/c_storage_blocks/iron.json | 4 +- .../mass_inject/c_storage_blocks/lead.json | 4 +- .../c_storage_blocks/netherite.json | 4 +- .../c_storage_blocks/plutonium.json | 4 +- .../mass_inject/c_storage_blocks/silver.json | 4 +- .../mass_inject/c_storage_blocks/tin.json | 4 +- .../c_storage_blocks/titanium.json | 4 +- .../c_storage_blocks/transcendium.json | 4 +- .../c_storage_blocks/tungsten.json | 4 +- .../mass_inject/c_storage_blocks/uranium.json | 4 +- .../mass_inject/c_storage_blocks/zinc.json | 4 +- .../zombie_to_giant_anvil.json | 1 - .../recipe/multiblock/acceleration_ring.json | 1 - .../recipe/multiblock/deflection_ring.json | 1 - .../recipe/multiblock/diamond_block.json | 1 - .../recipe/multiblock/giant_anvil_1.json | 1 - .../recipe/multiblock/giant_anvil_2.json | 1 - .../recipe/multiblock/large_cake.json | 1 - .../recipe/multiblock/large_fluid_tank_1.json | 1 - .../recipe/multiblock/large_fluid_tank_2.json | 1 - .../recipe/multiblock/menger_sponge.json | 1 - .../recipe/multiblock/menger_sponge_2.json | 1 - .../recipe/multiblock/shulker_container.json | 1 - .../multiblock/singularity_crystal.json | 1 - .../recipe/multiblock_conversion/spawner.json | 6 +- .../recipe/multiphase_matter_block.json | 5 +- .../recipe/multiphase_matter_from_block.json | 4 +- .../recipe/multiphase_transcendium.json | 13 +- .../anvilcraft/recipe/negative_matter.json | 5 +- .../recipe/negative_matter_block.json | 5 +- .../recipe/negative_matter_from_block.json | 4 +- .../negative_matter_nugget_from_ingot.json | 4 +- .../data/anvilcraft/recipe/neoforge.json | 9 +- .../recipe/netherite_crystal_nucleus.json | 9 +- .../data/anvilcraft/recipe/netherrack.json | 10 + .../anvilcraft/recipe/neutron_irradiator.json | 21 +- .../uranium_block_explosion.json | 69 + .../orange_reinforced_concrete_slab.json | 14 + .../orange_reinforced_concrete_stair.json | 16 + .../orange_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/overseer.json | 13 +- .../diamond_axe_and_royal_steel_axe.json | 11 +- .../diamond_hoe_and_royal_steel_hoe.json | 11 +- ...amond_pickaxe_and_royal_steel_pickaxe.json | 11 +- ...diamond_shovel_and_royal_steel_shovel.json | 11 +- .../diamond_sword_and_royal_steel_sword.json | 11 +- .../frost_anvil_and_ember_anvil.json | 11 +- ...frost_grindstone_and_ember_grindstone.json | 11 +- .../frost_metal_axe_and_ember_metal_axe.json | 13 +- ...halberd_and_ember_metal_heavy_halberd.json | 13 +- .../frost_metal_hoe_and_ember_metal_hoe.json | 13 +- ...metal_pickaxe_and_ember_metal_pickaxe.json | 13 +- ...l_resonator_and_ember_metal_resonator.json | 13 +- ...t_metal_shovel_and_ember_metal_shovel.json | 13 +- ...ost_metal_sword_and_ember_metal_sword.json | 13 +- ...ithing_table_and_ember_smithing_table.json | 11 +- .../recipe/permutation/gem_amulets.json | 19 +- .../netherite_axe_and_ember_metal_axe.json | 11 +- .../netherite_hoe_and_ember_metal_hoe.json | 11 +- ...erite_pickaxe_and_ember_metal_pickaxe.json | 11 +- ...therite_shovel_and_ember_metal_shovel.json | 11 +- ...netherite_sword_and_ember_metal_sword.json | 11 +- .../recipe/permutation_smithing_template.json | 13 +- .../recipe/piezoelectric_crystal.json | 8 +- .../piezoelectric_crystal_amethyst.json | 8 +- .../data/anvilcraft/recipe/pill.json | 3 +- .../data/anvilcraft/recipe/pill_box.json | 9 +- .../recipe/pink_reinforced_concrete_slab.json | 14 + .../pink_reinforced_concrete_stair.json | 16 + .../recipe/pink_reinforced_concrete_wall.json | 15 + .../anvilcraft/recipe/plutonium_block.json | 5 +- .../recipe/plutonium_ingot_from_block.json | 4 +- .../recipe/plutonium_ingot_from_nuggets.json | 5 +- .../recipe/plutonium_nugget_from_ingot.json | 4 +- ..._pressure_plate_from_ingots_plutonium.json | 5 +- .../recipe/power_converter_big.json | 9 +- .../power_converter_big_from_middle.json | 5 +- .../power_converter_big_from_small.json | 5 +- .../power_converter_middle_from_small.json | 5 +- .../recipe/powered_sliding_rail.json | 8 +- .../data/anvilcraft/recipe/processor.json | 13 +- .../data/anvilcraft/recipe/propel_piston.json | 25 +- .../anvilcraft/recipe/pulse_generator.json | 17 +- .../purple_reinforced_concrete_slab.json | 14 + .../purple_reinforced_concrete_stair.json | 16 + .../purple_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/raw_lead.json | 4 +- .../anvilcraft/recipe/raw_lead_block.json | 5 +- .../data/anvilcraft/recipe/raw_silver.json | 4 +- .../anvilcraft/recipe/raw_silver_block.json | 5 +- .../data/anvilcraft/recipe/raw_tin.json | 4 +- .../data/anvilcraft/recipe/raw_tin_block.json | 5 +- .../data/anvilcraft/recipe/raw_titanium.json | 4 +- .../anvilcraft/recipe/raw_titanium_block.json | 5 +- .../data/anvilcraft/recipe/raw_tungsten.json | 4 +- .../anvilcraft/recipe/raw_tungsten_block.json | 5 +- .../data/anvilcraft/recipe/raw_uranium.json | 4 +- .../anvilcraft/recipe/raw_uranium_block.json | 5 +- .../data/anvilcraft/recipe/raw_zinc.json | 4 +- .../anvilcraft/recipe/raw_zinc_block.json | 5 +- .../anvilcraft/recipe/recovery_pearl.json | 9 +- .../recipe/red_reinforced_concrete_slab.json | 14 + .../recipe/red_reinforced_concrete_stair.json | 16 + .../recipe/red_reinforced_concrete_wall.json | 15 + .../reinforced_concrete_black_slab.json | 16 - .../reinforced_concrete_black_stair.json | 18 - .../reinforced_concrete_black_wall.json | 17 - .../recipe/reinforced_concrete_blue_slab.json | 16 - .../reinforced_concrete_blue_stair.json | 18 - .../recipe/reinforced_concrete_blue_wall.json | 17 - .../reinforced_concrete_brown_slab.json | 16 - .../reinforced_concrete_brown_stair.json | 18 - .../reinforced_concrete_brown_wall.json | 17 - .../recipe/reinforced_concrete_cyan_slab.json | 16 - .../reinforced_concrete_cyan_stair.json | 18 - .../recipe/reinforced_concrete_cyan_wall.json | 17 - .../recipe/reinforced_concrete_gray_slab.json | 16 - .../reinforced_concrete_gray_stair.json | 18 - .../recipe/reinforced_concrete_gray_wall.json | 17 - .../reinforced_concrete_green_slab.json | 16 - .../reinforced_concrete_green_stair.json | 18 - .../reinforced_concrete_green_wall.json | 17 - .../reinforced_concrete_light_blue_slab.json | 16 - .../reinforced_concrete_light_blue_stair.json | 18 - .../reinforced_concrete_light_blue_wall.json | 17 - .../reinforced_concrete_light_gray_slab.json | 16 - .../reinforced_concrete_light_gray_stair.json | 18 - .../reinforced_concrete_light_gray_wall.json | 17 - .../recipe/reinforced_concrete_lime_slab.json | 16 - .../reinforced_concrete_lime_stair.json | 18 - .../recipe/reinforced_concrete_lime_wall.json | 17 - .../reinforced_concrete_magenta_slab.json | 16 - .../reinforced_concrete_magenta_stair.json | 18 - .../reinforced_concrete_magenta_wall.json | 17 - .../reinforced_concrete_orange_slab.json | 16 - .../reinforced_concrete_orange_stair.json | 18 - .../reinforced_concrete_orange_wall.json | 17 - .../recipe/reinforced_concrete_pink_slab.json | 16 - .../reinforced_concrete_pink_stair.json | 18 - .../recipe/reinforced_concrete_pink_wall.json | 17 - .../reinforced_concrete_purple_slab.json | 16 - .../reinforced_concrete_purple_stair.json | 18 - .../reinforced_concrete_purple_wall.json | 17 - .../recipe/reinforced_concrete_red_slab.json | 16 - .../recipe/reinforced_concrete_red_stair.json | 18 - .../recipe/reinforced_concrete_red_wall.json | 17 - .../reinforced_concrete_white_slab.json | 16 - .../reinforced_concrete_white_stair.json | 18 - .../reinforced_concrete_white_wall.json | 17 - .../reinforced_concrete_yellow_slab.json | 16 - .../reinforced_concrete_yellow_stair.json | 18 - .../reinforced_concrete_yellow_wall.json | 17 - .../recipe/remote_transmission_pole.json | 13 +- .../data/anvilcraft/recipe/repeater.json | 13 +- .../data/anvilcraft/recipe/resin.json | 4 +- .../data/anvilcraft/recipe/resin_block.json | 5 +- .../anvilcraft/recipe/resonator_core.json | 13 +- .../anvilcraft/recipe/rotten_flesh_block.json | 37 +- .../rotten_flesh_from_rotten_flesh_block.json | 4 +- .../anvilcraft/recipe/royal_dragon_rod.json | 9 +- .../anvilcraft/recipe/royal_steel_block.json | 5 +- ...al_steel_ingot_from_royal_steel_block.json | 4 +- ...l_steel_ingot_from_royal_steel_nugget.json | 5 +- .../anvilcraft/recipe/royal_steel_nugget.json | 4 +- .../data/anvilcraft/recipe/ruby.json | 4 +- .../data/anvilcraft/recipe/ruby_block.json | 5 +- .../data/anvilcraft/recipe/ruby_laser.json | 20 +- .../data/anvilcraft/recipe/ruby_prism.json | 13 +- .../data/anvilcraft/recipe/sapphire.json | 4 +- .../anvilcraft/recipe/sapphire_block.json | 5 +- .../recipe/shaped/cut_flint_block.json | 4 +- .../recipe/shaped/cut_flint_pillar.json | 4 +- .../recipe/shaped/cut_flint_slab.json | 4 +- .../recipe/shaped/cut_flint_stairs.json | 4 +- .../recipe/shaped/polished_flint_block.json | 4 +- .../recipe/shaped_crushing_table_recipe.json | 9 +- .../recipe/shapeless/deform_to_permut.json | 5 +- .../recipe/shapeless/permut_to_deform.json | 5 +- .../shapeless_crushing_table_recipe.json | 9 +- .../data/anvilcraft/recipe/silver_block.json | 5 +- .../data/anvilcraft/recipe/silver_ingot.json | 5 +- .../recipe/silver_ingot_from_block.json | 4 +- .../data/anvilcraft/recipe/silver_nugget.json | 4 +- ...ver_pressure_plate_from_ingots_silver.json | 5 +- .../data/anvilcraft/recipe/sliding_rail.json | 8 +- .../anvilcraft/recipe/sliding_rail_stop.json | 8 +- .../recipe/smelting/lead_ingot.json | 5 +- .../recipe/smelting/lead_ingot_from_ore.json | 5 +- .../recipe/smelting/silver_ingot.json | 5 +- .../smelting/silver_ingot_from_ore.json | 5 +- .../anvilcraft/recipe/smelting/tin_ingot.json | 5 +- .../recipe/smelting/tin_ingot_from_ore.json | 5 +- .../recipe/smelting/titanium_ingot.json | 5 +- .../smelting/titanium_ingot_from_ore.json | 5 +- .../recipe/smelting/tungsten_ingot.json | 5 +- .../smelting/tungsten_ingot_from_ore.json | 5 +- .../recipe/smelting/uranium_ingot.json | 5 +- .../smelting/uranium_ingot_from_ore.json | 5 +- .../recipe/smelting/zinc_ingot.json | 5 +- .../recipe/smelting/zinc_ingot_from_ore.json | 5 +- .../recipe/smelting_cooking_bread.json | 5 +- .../recipe/smithing/ember_anvil.json | 13 +- .../recipe/smithing/ember_anvil_hammer.json | 13 +- .../recipe/smithing/ember_dragon_rod.json | 13 +- .../recipe/smithing/ember_grindstone.json | 13 +- .../recipe/smithing/ember_metal_axe.json | 13 +- .../recipe/smithing/ember_metal_hoe.json | 13 +- .../recipe/smithing/ember_metal_pickaxe.json | 13 +- .../recipe/smithing/ember_metal_shovel.json | 13 +- .../recipe/smithing/ember_metal_sword.json | 13 +- .../recipe/smithing/ember_smithing_table.json | 13 +- .../recipe/smithing/frost_anvil.json | 13 +- .../recipe/smithing/frost_grindstone.json | 13 +- .../recipe/smithing/frost_metal_axe.json | 13 +- .../recipe/smithing/frost_metal_hoe.json | 13 +- .../recipe/smithing/frost_metal_pickaxe.json | 13 +- .../recipe/smithing/frost_metal_shovel.json | 13 +- .../recipe/smithing/frost_metal_sword.json | 13 +- .../recipe/smithing/frost_smithing_table.json | 13 +- .../recipe/smithing/royal_anvil.json | 13 +- .../recipe/smithing/royal_anvil_hammer.json | 13 +- .../recipe/smithing/royal_dragon_rod.json | 13 +- .../recipe/smithing/royal_grindstone.json | 13 +- .../recipe/smithing/royal_smithing_table.json | 13 +- .../recipe/smithing/royal_steel_axe.json | 13 +- .../recipe/smithing/royal_steel_hoe.json | 13 +- .../recipe/smithing/royal_steel_pickaxe.json | 13 +- .../recipe/smithing/royal_steel_shovel.json | 13 +- .../recipe/smithing/royal_steel_sword.json | 13 +- .../recipe/smithing/transcendence_anvil.json | 13 +- .../smithing/transcendence_anvil_hammer.json | 13 +- .../smithing/transcendence_dragon_rod.json | 13 +- .../data/anvilcraft/recipe/smoking_bread.json | 5 +- .../anvilcraft/recipe/spectral_slingshot.json | 13 +- .../squeezing/exp_fluid_from_sculk.json | 3 +- .../exp_fluid_from_sculk_use_frost_anvil.json | 3 +- .../lava_cauldron_from_magma_block.json | 5 +- .../powder_snow_cauldron_from_snow_block.json | 3 +- .../water_cauldron_from_moss_block.json | 3 +- .../water_cauldron_from_wet_sponge.json | 3 +- .../recipe/stable_neutronium_ingot.json | 9 +- .../eight_to_one_smithing_template.json | 14 + .../four_to_one_smithing_template.json | 14 + .../two_to_one_smithing_template.json | 14 + .../anvilcraft/recipe/stamping_platform.json | 9 +- .../eight_to_one_smithing_template.json | 34 - .../four_to_one_smithing_template.json | 22 - .../two_to_one_smithing_template.json | 16 - .../stonecutting/black_chocolate_slab.json | 4 +- .../stonecutting/black_chocolate_stairs.json | 5 +- .../black_reinforced_concrete_slab.json | 8 + .../black_reinforced_concrete_stair.json | 7 + .../black_reinforced_concrete_wall.json | 7 + .../blue_reinforced_concrete_slab.json | 8 + .../blue_reinforced_concrete_stair.json | 7 + .../blue_reinforced_concrete_wall.json | 7 + .../brown_reinforced_concrete_slab.json | 8 + .../brown_reinforced_concrete_stair.json | 7 + .../brown_reinforced_concrete_wall.json | 7 + .../recipe/stonecutting/chocolate_slab.json | 4 +- .../recipe/stonecutting/chocolate_stairs.json | 5 +- .../stonecutting/cut_ember_metal_block.json | 4 +- ...tal_pillar_from_cut_ember_metal_block.json | 5 +- ...r_metal_pillar_from_ember_metal_block.json | 4 +- ...metal_slab_from_cut_ember_metal_block.json | 4 +- ...ber_metal_slab_from_ember_metal_block.json | 4 +- ...tal_stairs_from_cut_ember_metal_block.json | 5 +- ...r_metal_stairs_from_ember_metal_block.json | 4 +- .../cut_flint_block_from_flint_block.json | 5 +- ...flint_block_from_polished_flint_block.json | 5 +- ...cut_flint_pillar_from_cut_flint_block.json | 5 +- .../cut_flint_pillar_from_flint_block.json | 5 +- ...lint_pillar_from_polished_flint_block.json | 5 +- .../cut_flint_slab_from_cut_flint_block.json | 4 +- .../cut_flint_slab_from_flint_block.json | 4 +- ..._flint_slab_from_polished_flint_block.json | 4 +- ...cut_flint_stairs_from_cut_flint_block.json | 5 +- .../cut_flint_stairs_from_flint_block.json | 5 +- ...lint_stairs_from_polished_flint_block.json | 5 +- .../stonecutting/cut_frost_metal_block.json | 4 +- ...tal_pillar_from_cut_frost_metal_block.json | 5 +- ...t_metal_pillar_from_frost_metal_block.json | 4 +- ...metal_slab_from_cut_frost_metal_block.json | 4 +- ...ost_metal_slab_from_frost_metal_block.json | 4 +- ...tal_stairs_from_cut_frost_metal_block.json | 5 +- ...t_metal_stairs_from_frost_metal_block.json | 4 +- .../stonecutting/cut_heavy_iron_block.json | 4 +- ..._block_from_polished_heavy_iron_block.json | 4 +- ...y_iron_slab_from_cut_heavy_iron_block.json | 4 +- ...heavy_iron_slab_from_heavy_iron_block.json | 4 +- ...n_slab_from_polished_heavy_iron_block.json | 4 +- ...iron_stairs_from_cut_heavy_iron_block.json | 5 +- ...avy_iron_stairs_from_heavy_iron_block.json | 4 +- ...stairs_from_polished_heavy_iron_block.json | 4 +- .../stonecutting/cut_royal_steel_block.json | 4 +- ...eel_pillar_from_cut_royal_steel_block.json | 5 +- ...l_steel_pillar_from_royal_steel_block.json | 4 +- ...steel_slab_from_cut_royal_steel_block.json | 4 +- ...yal_steel_slab_from_royal_steel_block.json | 4 +- ...eel_stairs_from_cut_royal_steel_block.json | 5 +- ...l_steel_stairs_from_royal_steel_block.json | 4 +- .../cyan_reinforced_concrete_slab.json | 8 + .../cyan_reinforced_concrete_stair.json | 7 + .../cyan_reinforced_concrete_wall.json | 7 + .../gray_reinforced_concrete_slab.json | 8 + .../gray_reinforced_concrete_stair.json | 7 + .../gray_reinforced_concrete_wall.json | 7 + .../green_reinforced_concrete_slab.json | 8 + .../green_reinforced_concrete_stair.json | 7 + .../green_reinforced_concrete_wall.json | 7 + .../recipe/stonecutting/heavy_iron_beam.json | 4 +- ...y_iron_beam_from_cut_heavy_iron_block.json | 5 +- ...n_beam_from_polished_heavy_iron_block.json | 4 +- .../stonecutting/heavy_iron_column.json | 4 +- ...iron_column_from_cut_heavy_iron_block.json | 5 +- ...column_from_polished_heavy_iron_block.json | 4 +- .../recipe/stonecutting/heavy_iron_door.json | 4 +- ...n_door_from_polished_heavy_iron_block.json | 4 +- .../recipe/stonecutting/heavy_iron_plate.json | 4 +- ..._iron_plate_from_cut_heavy_iron_block.json | 4 +- ...y_iron_plate_from_cut_heavy_iron_slab.json | 5 +- ..._plate_from_polished_heavy_iron_block.json | 4 +- ...n_plate_from_polished_heavy_iron_slab.json | 4 +- .../stonecutting/heavy_iron_trapdoor.json | 4 +- ...on_trapdoor_from_cut_heavy_iron_block.json | 5 +- ...apdoor_from_polished_heavy_iron_block.json | 4 +- .../recipe/stonecutting/heavy_iron_wall.json | 4 +- ...y_iron_wall_from_cut_heavy_iron_block.json | 5 +- ...n_wall_from_polished_heavy_iron_block.json | 4 +- .../light_blue_reinforced_concrete_slab.json | 8 + .../light_blue_reinforced_concrete_stair.json | 7 + .../light_blue_reinforced_concrete_wall.json | 7 + .../light_gray_reinforced_concrete_slab.json | 8 + .../light_gray_reinforced_concrete_stair.json | 7 + .../light_gray_reinforced_concrete_wall.json | 7 + .../lime_reinforced_concrete_slab.json | 8 + .../lime_reinforced_concrete_stair.json | 7 + .../lime_reinforced_concrete_wall.json | 7 + .../magenta_reinforced_concrete_slab.json | 8 + .../magenta_reinforced_concrete_stair.json | 7 + .../magenta_reinforced_concrete_wall.json | 7 + .../orange_reinforced_concrete_slab.json | 8 + .../orange_reinforced_concrete_stair.json | 7 + .../orange_reinforced_concrete_wall.json | 7 + .../pink_reinforced_concrete_slab.json | 8 + .../pink_reinforced_concrete_stair.json | 7 + .../pink_reinforced_concrete_wall.json | 7 + .../stonecutting/polished_flint_block.json | 5 +- .../polished_heavy_iron_block.json | 4 +- ...heavy_iron_slab_from_heavy_iron_block.json | 4 +- ...n_slab_from_polished_heavy_iron_block.json | 4 +- ...avy_iron_stairs_from_heavy_iron_block.json | 4 +- ...stairs_from_polished_heavy_iron_block.json | 5 +- .../stonecutting/power_converter_middle.json | 4 +- .../power_converter_small_from_big.json | 4 +- .../power_converter_small_from_middle.json | 4 +- .../purple_reinforced_concrete_slab.json | 8 + .../purple_reinforced_concrete_stair.json | 7 + .../purple_reinforced_concrete_wall.json | 7 + .../red_reinforced_concrete_slab.json | 8 + .../red_reinforced_concrete_stair.json | 7 + .../red_reinforced_concrete_wall.json | 7 + .../reinforced_concrete_black_slab.json | 10 - .../reinforced_concrete_black_stair.json | 10 - .../reinforced_concrete_black_wall.json | 10 - .../reinforced_concrete_blue_slab.json | 10 - .../reinforced_concrete_blue_stair.json | 10 - .../reinforced_concrete_blue_wall.json | 10 - .../reinforced_concrete_brown_slab.json | 10 - .../reinforced_concrete_brown_stair.json | 10 - .../reinforced_concrete_brown_wall.json | 10 - .../reinforced_concrete_cyan_slab.json | 10 - .../reinforced_concrete_cyan_stair.json | 10 - .../reinforced_concrete_cyan_wall.json | 10 - .../reinforced_concrete_gray_slab.json | 10 - .../reinforced_concrete_gray_stair.json | 10 - .../reinforced_concrete_gray_wall.json | 10 - .../reinforced_concrete_green_slab.json | 10 - .../reinforced_concrete_green_stair.json | 10 - .../reinforced_concrete_green_wall.json | 10 - .../reinforced_concrete_light_blue_slab.json | 10 - .../reinforced_concrete_light_blue_stair.json | 10 - .../reinforced_concrete_light_blue_wall.json | 10 - .../reinforced_concrete_light_gray_slab.json | 10 - .../reinforced_concrete_light_gray_stair.json | 10 - .../reinforced_concrete_light_gray_wall.json | 10 - .../reinforced_concrete_lime_slab.json | 10 - .../reinforced_concrete_lime_stair.json | 10 - .../reinforced_concrete_lime_wall.json | 10 - .../reinforced_concrete_magenta_slab.json | 10 - .../reinforced_concrete_magenta_stair.json | 10 - .../reinforced_concrete_magenta_wall.json | 10 - .../reinforced_concrete_orange_slab.json | 10 - .../reinforced_concrete_orange_stair.json | 10 - .../reinforced_concrete_orange_wall.json | 10 - .../reinforced_concrete_pink_slab.json | 10 - .../reinforced_concrete_pink_stair.json | 10 - .../reinforced_concrete_pink_wall.json | 10 - .../reinforced_concrete_purple_slab.json | 10 - .../reinforced_concrete_purple_stair.json | 10 - .../reinforced_concrete_purple_wall.json | 10 - .../reinforced_concrete_red_slab.json | 10 - .../reinforced_concrete_red_stair.json | 10 - .../reinforced_concrete_red_wall.json | 10 - .../reinforced_concrete_white_slab.json | 10 - .../reinforced_concrete_white_stair.json | 10 - .../reinforced_concrete_white_wall.json | 10 - .../reinforced_concrete_yellow_slab.json | 10 - .../reinforced_concrete_yellow_stair.json | 10 - .../reinforced_concrete_yellow_wall.json | 10 - .../smooth_royal_steel_block.json | 4 +- .../stonecutting/white_chocolate_slab.json | 4 +- .../stonecutting/white_chocolate_stairs.json | 5 +- .../white_reinforced_concrete_slab.json | 8 + .../white_reinforced_concrete_stair.json | 7 + .../white_reinforced_concrete_wall.json | 7 + .../yellow_reinforced_concrete_slab.json | 8 + .../yellow_reinforced_concrete_stair.json | 7 + .../yellow_reinforced_concrete_wall.json | 7 + .../data/anvilcraft/recipe/sugar_block.json | 37 +- .../recipe/sugar_from_sugar_block.json | 4 +- .../super_heating/lava_from_cobblestone.json | 3 +- .../recipe/super_heating/lava_from_stone.json | 3 +- ...elt_gem_cauldron_from_chromatic_stone.json | 3 +- .../melt_gem_cauldron_from_gem_block.json | 3 +- .../data/anvilcraft/recipe/tesla_tower.json | 17 +- .../recipe/time_warp/amber_block.json | 12 +- .../recipe/time_warp/ember_metal_ingot_0.json | 6 +- .../recipe/time_warp/ember_metal_ingot_1.json | 6 +- .../recipe/time_warp/ember_metal_ingot_2.json | 6 +- .../recipe/time_warp/ember_metal_ingot_3.json | 6 +- .../recipe/time_warp/mob_amber_block.json | 31 +- .../time_warp/oil_from_foods/raw_beef.json | 3 +- .../time_warp/oil_from_foods/raw_chicken.json | 3 +- .../time_warp/oil_from_foods/raw_fish.json | 3 +- .../time_warp/oil_from_foods/raw_mutton.json | 3 +- .../oil_from_foods/raw_porkchop.json | 3 +- .../time_warp/oil_from_foods/raw_rabbit.json | 3 +- .../time_warp/oil_from_piglin_head.json | 3 +- .../time_warp/oil_from_rotten_flesh.json | 3 +- .../recipe/time_warp/oil_from_spider_eye.json | 3 +- .../time_warp/oil_from_zombie_head.json | 3 +- .../time_warp/resentful_amber_block.json | 37 +- .../data/anvilcraft/recipe/tin_block.json | 5 +- .../data/anvilcraft/recipe/tin_ingot.json | 5 +- .../recipe/tin_ingot_from_block.json | 4 +- .../data/anvilcraft/recipe/tin_nugget.json | 4 +- .../tin_pressure_plate_from_ingots_tin.json | 5 +- .../anvilcraft/recipe/titanium_block.json | 5 +- .../anvilcraft/recipe/titanium_ingot.json | 5 +- .../recipe/titanium_ingot_from_block.json | 4 +- .../anvilcraft/recipe/titanium_nugget.json | 4 +- ...m_pressure_plate_from_ingots_titanium.json | 5 +- .../data/anvilcraft/recipe/topaz.json | 4 +- .../data/anvilcraft/recipe/topaz_block.json | 5 +- .../data/anvilcraft/recipe/totem_of_rage.json | 13 +- .../anvilcraft/recipe/totem_of_recovery.json | 13 +- .../recipe/transcendence_dragon_rod.json | 9 +- .../anvilcraft/recipe/transcendium_block.json | 5 +- .../anvilcraft/recipe/transcendium_ingot.json | 5 +- .../recipe/transcendium_ingot_from_block.json | 4 +- .../transcendium_nugget_from_ingot.json | 4 +- .../anvilcraft/recipe/transmission_pole.json | 13 +- .../recipe/transparent_crafting_table.json | 9 +- .../data/anvilcraft/recipe/trident.json | 9 +- .../anvilcraft/recipe/tungsten_block.json | 5 +- .../anvilcraft/recipe/tungsten_ingot.json | 5 +- .../recipe/tungsten_ingot_from_block.json | 4 +- .../anvilcraft/recipe/tungsten_nugget.json | 4 +- ...n_pressure_plate_from_ingots_tungsten.json | 5 +- .../transcendence_heavy_halberd.json | 4 +- .../transcendence_resonator.json | 4 +- .../data/anvilcraft/recipe/uranium_block.json | 5 +- .../data/anvilcraft/recipe/uranium_ingot.json | 5 +- .../recipe/uranium_ingot_from_block.json | 4 +- .../anvilcraft/recipe/uranium_nugget.json | 4 +- ...um_pressure_plate_from_ingots_uranium.json | 5 +- .../recipe/void_energy_collector.json | 13 +- .../data/anvilcraft/recipe/void_matter.json | 4 +- .../anvilcraft/recipe/void_matter_block.json | 5 +- .../data/anvilcraft/recipe/wet_sponge.json | 5 +- .../recipe/white_chocolate_block.json | 5 +- .../recipe/white_chocolate_from_block.json | 4 +- .../recipe/white_chocolate_slab.json | 4 +- .../recipe/white_chocolate_stairs.json | 4 +- .../white_reinforced_concrete_slab.json | 14 + .../white_reinforced_concrete_stair.json | 16 + .../white_reinforced_concrete_wall.json | 15 + .../yellow_reinforced_concrete_slab.json | 14 + .../yellow_reinforced_concrete_stair.json | 16 + .../yellow_reinforced_concrete_wall.json | 15 + .../data/anvilcraft/recipe/zinc_block.json | 5 +- .../data/anvilcraft/recipe/zinc_ingot.json | 5 +- .../recipe/zinc_ingot_from_block.json | 4 +- .../data/anvilcraft/recipe/zinc_nugget.json | 4 +- .../zinc_pressure_plate_from_ingots_zinc.json | 5 +- .../tags/block/void_decay_products.json | 12 +- .../data/anvilcraft/tags/fluid/ignitable.json | 5 + .../data/anvilcraft/tags/item/amulet.json | 6 +- .../item/disallow_hand_insert_into_tank.json | 5 + .../tags/item/reinforced_concrete.json | 128 +- .../data/anvilcraft/tags/item/templates.json | 21 +- .../anvilcraft/trade_set/jeweler/level_1.json | 8 + .../anvilcraft/trade_set/jeweler/level_2.json | 8 + .../anvilcraft/trade_set/jeweler/level_3.json | 10 + .../anvilcraft/trade_set/jeweler/level_4.json | 9 + .../anvilcraft/trade_set/jeweler/level_5.json | 8 + .../jeweler/amber_for_emerald.json | 12 + .../jeweler/amethyst_shard_for_emerald.json | 12 + .../jeweler/emerald_for_amulet_box.json | 15 + .../jeweler/emerald_for_geode.json | 15 + .../emerald_for_royal_steel_template.json | 16 + .../jeweler/emerald_for_tinted_glass.json | 11 + .../jeweler/mob_amber_for_emerald.json | 12 + .../jeweler/nautilus_shell_for_emerald.json | 12 + .../jeweler/resentful_amber_for_emerald.json | 12 + .../jeweler/ruby_block_for_emerald.json | 12 + .../jeweler/sapphire_block_for_emerald.json | 12 + .../jeweler/sea_lantern_for_emerald.json | 12 + .../jeweler/topaz_block_for_emerald.json | 12 + .../resources/data/c/tags/block/dyed.json | 128 +- .../data/c/tags/block/dyed/black.json | 8 +- .../data/c/tags/block/dyed/blue.json | 8 +- .../data/c/tags/block/dyed/brown.json | 8 +- .../data/c/tags/block/dyed/cyan.json | 8 +- .../data/c/tags/block/dyed/gray.json | 8 +- .../data/c/tags/block/dyed/green.json | 8 +- .../data/c/tags/block/dyed/light_blue.json | 8 +- .../data/c/tags/block/dyed/light_gray.json | 8 +- .../data/c/tags/block/dyed/lime.json | 8 +- .../data/c/tags/block/dyed/magenta.json | 8 +- .../data/c/tags/block/dyed/orange.json | 8 +- .../data/c/tags/block/dyed/pink.json | 8 +- .../data/c/tags/block/dyed/purple.json | 8 +- .../resources/data/c/tags/block/dyed/red.json | 8 +- .../data/c/tags/block/dyed/white.json | 8 +- .../data/c/tags/block/dyed/yellow.json | 8 +- .../c/tags/item/amethyst_tool_materials.json | 5 + .../resources/data/c/tags/item/dyed.json | 128 +- .../data/c/tags/item/dyed/black.json | 8 +- .../resources/data/c/tags/item/dyed/blue.json | 8 +- .../data/c/tags/item/dyed/brown.json | 8 +- .../resources/data/c/tags/item/dyed/cyan.json | 8 +- .../resources/data/c/tags/item/dyed/gray.json | 8 +- .../data/c/tags/item/dyed/green.json | 8 +- .../data/c/tags/item/dyed/light_blue.json | 8 +- .../data/c/tags/item/dyed/light_gray.json | 8 +- .../resources/data/c/tags/item/dyed/lime.json | 8 +- .../data/c/tags/item/dyed/magenta.json | 8 +- .../data/c/tags/item/dyed/orange.json | 8 +- .../resources/data/c/tags/item/dyed/pink.json | 8 +- .../data/c/tags/item/dyed/purple.json | 8 +- .../resources/data/c/tags/item/dyed/red.json | 8 +- .../data/c/tags/item/dyed/white.json | 8 +- .../data/c/tags/item/dyed/yellow.json | 8 +- .../tags/item/ember_metal_tool_materials.json | 5 + .../resources/data/c/tags/item/foods.json | 3 - .../tags/item/frost_metal_tool_materials.json | 5 + .../data/c/tags/item/ingots/magnet.json | 1 + .../tags/item/royal_steel_tool_materials.json | 5 + .../item/transcendium_tool_materials.json | 5 + .../advancement/recipes/misc/netherrack.json | 32 - .../recipes/null/uranium_block_explosion.json | 21 - .../recipes/redstone/empty_propel_piston.json | 32 - .../minecraft/recipe/empty_propel_piston.json | 30 - .../data/minecraft/recipe/netherrack.json | 13 - .../recipe/null/uranium_block_explosion.json | 70 - .../data/minecraft/tags/block/cauldrons.json | 1 - .../tags/block/mineable/pickaxe.json | 129 +- .../data/minecraft/tags/block/slabs.json | 32 +- .../data/minecraft/tags/block/stairs.json | 32 +- .../data/minecraft/tags/block/walls.json | 32 +- .../enchantable/{sword.json => sweeping.json} | 0 .../data/minecraft/tags/item/slabs.json | 32 +- .../data/minecraft/tags/item/stairs.json | 32 +- .../data/minecraft/tags/item/walls.json | 32 +- .../acquirable_job_site.json | 5 +- .../data_maps/item/furnace_fuels.json | 7 - .../loot_modifiers/global_loot_modifiers.json | 7 - .../java/dev/dubhe/anvilcraft/AnvilCraft.java | 52 +- .../AnvilHammerClickBlockTrigger.java | 10 +- .../AnvilHammerHurtEntityTrigger.java | 10 +- .../AnvilHitPiezoelectricCrystalTrigger.java | 8 +- .../criterion/AnvilLootingTrigger.java | 15 +- .../criterion/AnvilOnGroundTrigger.java | 8 +- .../criterion/BlockPredicate.java | 7 +- .../criterion/ConvertBeaconTrigger.java | 8 +- .../criterion/DevourerDevourTrigger.java | 10 +- .../criterion/DispenserRepairIronGolem.java | 8 +- .../criterion/FireReforgeTrigger.java | 8 +- .../criterion/HeatCollectorTrigger.java | 12 +- .../criterion/InWorldRecipeTrigger.java | 26 +- .../criterion/MagnetLiftingAnvilTrigger.java | 8 +- .../advancements/criterion/MilkTrigger.java | 8 +- .../MineralFountainCreateTrigger.java | 4 +- .../criterion/PlacerPlaceTrigger.java | 10 +- ...layerKilledEntityByAnvilHammerTrigger.java | 17 +- .../PlayerWearAnvilHammerTrigger.java | 8 +- .../criterion/UseItemTrigger.java | 30 +- .../advancements/criterion/package-info.java | 7 +- .../anvil/BeaconConversionBehavior.java | 15 +- .../anvil/BlockDevourerBehavior.java | 8 +- .../anvilcraft/anvil/BlockPlacerBehavior.java | 6 +- .../anvil/CementStainingBehavior.java | 6 +- .../anvil/GunpowderBlockBehavior.java | 6 +- .../anvilcraft/anvil/HitBeeNestBehavior.java | 6 +- .../anvilcraft/anvil/HitCrabTrapBehavior.java | 31 +- .../anvilcraft/anvil/HitSpawnerBehavior.java | 196 +- .../anvilcraft/anvil/ImpactPileBehavior.java | 8 +- .../anvil/ItemStampingBehavior.java | 124 -- .../anvilcraft/anvil/MagnetBlockBehavior.java | 6 +- .../anvilcraft/anvil/MassInjectBehavior.java | 10 +- .../anvilcraft/anvil/RedstoneEMPBehavior.java | 13 +- .../anvilcraft/anvil/ResetVaultBehavior.java | 6 +- .../anvilcraft/anvil/SugarBlockBehavior.java | 6 +- .../anvil/TimeWarpPlayerBehavior.java | 13 +- .../anvil/TranscendiumBehavior.java | 5 +- .../dubhe/anvilcraft/anvil/package-info.java | 7 +- .../anvilcraft/api/BlockPlaceAssist.java | 13 +- .../dubhe/anvilcraft/api/RipeningManager.java | 34 +- .../dubhe/anvilcraft/api/SpawningManager.java | 14 +- .../advancement/AdvancementLineHelper.java | 94 +- .../api/advancement/package-info.java | 7 +- .../anvilcraft/api/amulet/AmuletManager.java | 4 +- .../api/amulet/AmuletRaffleProbability.java | 11 +- .../api/amulet/fromto/package-info.java | 7 +- .../anvilcraft/api/amulet/package-info.java | 7 +- .../api/amulet/type/AmuletType.java | 26 +- .../api/amulet/type/package-info.java | 7 +- .../anvilcraft/api/anvil/IAnvilBehavior.java | 6 +- .../anvilcraft/api/anvil/package-info.java | 7 +- .../anvilcraft/api/behavior/BehaviorTree.java | 4 +- .../api/behavior/ExecutableTreeNode.java | 2 +- .../api/behavior/ExecutionContext.java | 8 +- .../behavior/PredicateExecutableTreeNode.java | 2 +- .../api/behavior/PredicateTreeNode.java | 2 +- .../anvilcraft/api/behavior/SetTreeNode.java | 4 +- .../anvilcraft/api/behavior/package-info.java | 7 +- .../anvilcraft/api/block/IEmberBlock.java | 18 +- .../api/block/IIgnitableCauldron.java | 20 + .../api/block/INegativeShapeBlock.java | 10 +- .../block/entity/IExtensibleBlockEntity.java | 10 + .../anvilcraft/api/block/package-info.java | 7 +- .../ChargeCollectorManager.java | 20 +- .../api/chargecollector/package-info.java | 7 +- .../anvilcraft/api/energy/EnergyHelper.java | 9 +- .../anvilcraft/api/energy/package-info.java | 7 +- .../api/entity/attribute/package-info.java | 7 +- .../AnvilCraftDestroyerFakePlayer.java | 32 +- .../api/entity/fakeplayer/package-info.java | 7 +- .../anvilcraft/api/entity/package-info.java | 7 +- .../entity/player/IAnvilCraftBlockPlacer.java | 22 +- .../api/entity/player/package-info.java | 7 +- .../api/event/AnvilBehaviorRegisterEvent.java | 9 +- .../anvilcraft/api/event/AnvilEvent.java | 15 +- .../anvilcraft/api/event/package-info.java | 7 +- .../api/fluid/IFluidHandlerHolder.java | 5 +- .../anvilcraft/api/fluid/package-info.java | 7 +- .../CapacityModifiableFluidHandler.java | 19 + .../api/fluidtank/InfinityFluidTank.java | 119 +- .../api/fluidtank/package-info.java | 7 +- .../api/hammer/HammerRotateBehavior.java | 8 +- .../api/hammer/IHammerChangeable.java | 2 +- .../api/hammer/IHasHammerEffect.java | 2 +- .../anvilcraft/api/hammer/package-info.java | 7 +- .../anvilcraft/api/heat/HeatRecorder.java | 34 +- .../anvilcraft/api/heat/HeaterManager.java | 60 +- .../heat/collector/HeatCollectorManager.java | 19 +- .../api/heat/collector/HeatSourceEntry.java | 16 +- .../api/heat/collector/package-info.java | 7 +- .../anvilcraft/api/heat/package-info.java | 7 +- .../api/injection/IItemSubmitExtension.java | 11 + .../api/injection/block/IBlockExtension.java | 2 +- .../api/injection/block/package-info.java | 7 +- .../block/state/IBlockStateExtension.java | 2 +- .../injection/block/state/package-info.java | 7 +- .../entity/IFallingBlockEntityExtension.java | 2 +- .../entity/ILivingEntityExtension.java | 7 + .../api/injection/entity/package-info.java | 7 +- .../input/IMouseHandlerExtension.java | 2 +- .../api/injection/input/package-info.java | 4 + .../api/injection/package-info.java | 7 +- .../api/injection/tooltip/package-info.java | 7 +- .../anvilcraft/api/input/package-info.java | 7 - .../anvilcraft/api/item/IDiskCloneable.java | 7 +- .../api/item/IMultipleMaterial.java | 4 +- .../api/item/IPermutationMaterial.java | 4 +- .../anvilcraft/api/item/package-info.java | 7 +- .../api/item/property/IIntegerComponent.java | 5 + .../itemhandler/FilteredItemStackHandler.java | 160 +- .../api/itemhandler/HoneyCauldronWrapper.java | 76 - .../api/itemhandler/IItemHandlerHolder.java | 11 - .../IItemResourceHandlerHolder.java | 11 + .../InputRefusingItemHandlerWrapper.java | 54 +- .../api/itemhandler/ItemHandlerUtil.java | 289 ++- .../api/itemhandler/OverLimitItemHandler.java | 176 +- .../PollableFilteredItemStackHandler.java | 103 +- .../api/itemhandler/PollableItemHandler.java | 37 +- .../SingleStackResourceHandler.java | 19 + .../SlotItemHandlerWithFilter.java | 24 +- .../itemhandler/SolidCauldronExtractor.java | 130 ++ .../api/itemhandler/package-info.java | 7 +- .../dubhe/anvilcraft/api/package-info.java | 7 +- .../anvilcraft/api/portal/PortalType.java | 14 +- .../api/power/DynamicPowerComponent.java | 12 +- .../dubhe/anvilcraft/api/power/FastShape.java | 6 +- .../anvilcraft/api/power/IPowerComponent.java | 24 +- .../anvilcraft/api/power/IPowerConsumer.java | 14 + .../anvilcraft/api/power/IPowerProducer.java | 21 +- .../anvilcraft/api/power/IPowerStorage.java | 14 + .../api/power/IPowerTransmitter.java | 14 + .../api/power/PowerComponentInfo.java | 12 +- .../dubhe/anvilcraft/api/power/PowerGrid.java | 38 +- .../api/power/PowerGridManager.java | 22 +- .../anvilcraft/api/power/SimplePowerGrid.java | 102 +- .../anvilcraft/api/power/package-info.java | 7 +- .../api/recipe/data/ICustomDataComponent.java | 23 +- .../api/recipe/data/ItemEnchantmentsData.java | 50 +- .../api/recipe/data/MultiphaseData.java | 161 +- .../api/recipe/data/NormalDataComponent.java | 37 +- .../api/recipe/data/RequiredEntry.java | 30 - .../api/recipe/data/package-info.java | 7 +- .../api/recipe/number/package-info.java | 7 +- .../api/recipe/result/RecipeResult.java | 30 +- .../api/recipe/result/ResultContext.java | 2 +- .../result/modifier/ChangeDataType.java | 12 +- .../api/recipe/result/modifier/CopyData.java | 24 +- .../api/recipe/result/modifier/MergeData.java | 23 +- .../result/modifier/RemoveAttribute.java | 20 +- .../recipe/result/modifier/package-info.java | 7 +- .../api/recipe/result/package-info.java | 7 +- .../api/recipe/slot/package-info.java | 7 +- .../CacheableBERenderingPipeline.java | 82 - .../CacheableBlockEntityRenderer.java | 13 - .../CacheableBlockEntityRenderers.java | 30 - .../api/rendering/CompileResult.java | 60 - .../rendering/FullyBufferedBufferSource.java | 92 - .../api/rendering/RenderRegion.java | 205 --- .../api/rendering/package-info.java | 7 - .../api/sliding/SlidingBlockSection.java | 26 +- .../anvilcraft/api/sliding/package-info.java | 7 +- .../api/sound/ISoundEventListener.java | 4 +- .../anvilcraft/api/sound/SoundHelper.java | 6 +- .../anvilcraft/api/sound/package-info.java | 7 +- .../api/taslatower/package-info.java | 7 - .../HasCustomNameFilter.java | 2 +- .../IsBabyFriendlyFilter.java | 2 +- .../IsEntityIdFilter.java | 2 +- .../IsFriendlyFilter.java | 2 +- .../IsOnVehicleFilter.java | 2 +- .../IsPetFilter.java | 2 +- .../IsPlayerFilter.java | 2 +- .../IsPlayerIdFilter.java | 2 +- .../TeslaFilter.java | 2 +- .../anvilcraft/api/thought/Thinkable.java | 24 +- .../api/thought/ThoughtManager.java | 9 +- .../anvilcraft/api/thought/package-info.java | 7 +- .../api/tooltip/HudTooltipManager.java | 76 +- .../api/tooltip/ItemTooltipManager.java | 168 +- .../api/tooltip/TooltipRenderHelper.java | 98 +- .../tooltip/impl/AffectRangeProviderImpl.java | 2 +- .../tooltip/impl/ChargerTooltipProvider.java | 2 +- .../impl/DeflectionRingTooltipProvider.java | 2 +- .../impl/HeatCollectorTooltipProvider.java | 8 +- .../impl/HeatableBlockTooltipProvider.java | 2 +- .../api/tooltip/impl/HeliostatsTooltip.java | 6 +- .../impl/HeliostatsTooltipProvider.java | 2 +- .../InjectedBlockEntityTooltipProvider.java | 4 +- .../impl/PowerComponentTooltipProvider.java | 6 +- .../impl/PropelPistonTooltipProvider.java | 6 +- .../impl/RubyPrismTooltipProvider.java | 4 +- .../api/tooltip/impl/package-info.java | 7 +- .../anvilcraft/api/tooltip/package-info.java | 7 +- .../IHandHeldItemTooltipProvider.java | 4 +- .../tooltip/providers/IHasAffectRange.java | 3 +- .../tooltip/providers/ITooltipProvider.java | 9 +- .../api/tooltip/providers/package-info.java | 7 +- .../anvilcraft/api/totem/TotemManager.java | 35 - .../api/totem/handler/AmuletBoxHandler.java | 42 - .../api/totem/handler/TotemHandler.java | 39 - .../api/totem/handler/TotemOfRageHandler.java | 42 - .../totem/handler/TotemOfRecoveryHandler.java | 68 - .../totem/handler/TotemOfUndyingHandler.java | 40 - .../api/totem/handler/package-info.java | 7 - .../anvilcraft/api/totem/package-info.java | 7 - .../anvilcraft/api/uuid/package-info.java | 7 +- .../api/world/load/LoadChuckData.java | 14 +- .../load/RandomChuckTickLoadManager.java | 8 +- .../api/world/load/package-info.java | 7 +- .../anvilcraft/api/world/package-info.java | 7 +- .../anvilcraft/block/AbstractCakeBlock.java | 94 - .../anvilcraft/block/BerryCakeBlock.java | 18 - .../anvilcraft/block/BerryCreamBlock.java | 18 - .../block/BlockComparatorBlock.java | 179 -- .../dubhe/anvilcraft/block/CakeBaseBlock.java | 18 - .../dev/dubhe/anvilcraft/block/CakeBlock.java | 18 - .../anvilcraft/block/CementCauldronBlock.java | 66 - .../dubhe/anvilcraft/block/ChargerBlock.java | 208 --- .../anvilcraft/block/ChocolateCakeBlock.java | 18 - .../anvilcraft/block/ChocolateCreamBlock.java | 18 - .../dubhe/anvilcraft/block/CrabTrapBlock.java | 209 --- .../dubhe/anvilcraft/block/CreamBlock.java | 18 - .../dubhe/anvilcraft/block/EndDustBlock.java | 58 - .../dubhe/anvilcraft/block/ExpFluidBlock.java | 28 - .../block/ExpFluidCauldronBlock.java | 49 - .../anvilcraft/block/FireCauldronBlock.java | 61 - .../dubhe/anvilcraft/block/FishTankBlock.java | 95 - .../anvilcraft/block/GunpowderBlock.java | 162 -- .../anvilcraft/block/HoneyCauldronBlock.java | 55 - .../anvilcraft/block/LavaCauldronBlock.java | 83 - .../block/Layered4LevelCauldronBlock.java | 78 - .../block/LevitationPowderBlock.java | 48 - .../anvilcraft/block/MagneticChuteBlock.java | 235 --- .../anvilcraft/block/MeltGemCauldron.java | 59 - .../anvilcraft/block/ObsidianCauldron.java | 36 - .../anvilcraft/block/OilCauldronBlock.java | 65 - .../anvilcraft/block/PlasmaJetsBlock.java | 72 - .../dubhe/anvilcraft/block/PropelPiston.java | 324 ---- .../block/ReinforcedConcreteBlock.java | 93 - .../anvilcraft/block/SimpleChuteBlock.java | 318 ---- .../anvilcraft/block/StepEffectBlock.java | 48 - .../block/TransparentCraftingTableBlock.java | 287 --- .../anvilcraft/block/VoidMatterBlock.java | 39 - .../anvilcraft/block/batch/package-info.java | 7 - .../better/BetterAbstractCauldronBlock.java | 28 - .../block/better/BetterAnvilBlock.java | 6 +- .../block/better/BetterBaseEntityBlock.java | 9 +- .../anvilcraft/block/better/BetterBlock.java | 6 +- .../block/better/BetterGrindstoneBlock.java | 6 +- .../anvilcraft/block/better/package-info.java | 7 +- .../anvilcraft/block/cake/BerryCakeBlock.java | 18 + .../block/cake/BerryCreamBlock.java | 18 + .../anvilcraft/block/cake/CakeBaseBlock.java | 18 + .../anvilcraft/block/cake/CakeBlock.java | 18 + .../block/cake/ChocolateCakeBlock.java | 18 + .../block/cake/ChocolateCreamBlock.java | 18 + .../anvilcraft/block/cake/CreamBlock.java | 18 + .../block/{ => cake}/LargeCakeBlock.java | 32 +- .../block/cake/ShovelEatableCakeBlock.java | 88 + .../block/cake/StepEffectBlock.java | 48 + .../block/{ => cake}/StepEffectSlabBlock.java | 4 +- .../{ => cake}/StepEffectStairBlock.java | 4 +- .../anvilcraft/block/cake/package-info.java | 4 + .../block/cauldron/BaseCauldronBlock.java | 25 + .../block/cauldron/CementCauldronBlock.java | 47 + .../block/cauldron/ExpFluidCauldronBlock.java | 35 + .../block/cauldron/HoneyCauldronBlock.java | 10 + .../block/cauldron/LavaCauldronBlock.java | 51 + .../cauldron/Layered4LevelCauldronBlock.java | 104 ++ .../block/cauldron/MeltGemCauldronBlock.java | 36 + .../block/cauldron/ObsidianCauldronBlock.java | 36 + .../block/cauldron/OilCauldronBlock.java | 79 + .../block/cauldron/package-info.java | 4 + .../CelestialForgingAnvilAmplifierBlock.java | 18 +- .../block/cfa/CelestialForgingAnvilBlock.java | 18 +- .../CelestialForgingAnvilInterfaceBlock.java | 6 +- .../block/cfa/interfaces/package-info.java | 7 +- ...lestialForgingAnvilAmplifierBlockItem.java | 8 +- ...lestialForgingAnvilInterfaceBlockItem.java | 2 +- .../block/cfa/item/package-info.java | 7 +- .../anvilcraft/block/cfa/package-info.java | 7 +- .../block/{ => container}/FluidTankBlock.java | 19 +- .../{ => container}/LargeFluidTankBlock.java | 26 +- .../ShulkerContainerBlock.java | 10 +- .../block/container/package-info.java | 4 + .../decoration/ReinforcedConcreteBlock.java | 112 ++ .../ember}/EmberMetalBlock.java | 4 +- .../ember}/EmberMetalPillarBlock.java | 2 +- .../ember}/EmberMetalSlabBlock.java | 4 +- .../ember}/EmberMetalStairBlock.java | 4 +- .../block/decoration/ember/package-info.java | 4 + .../frost}/FrostMetalBlock.java | 2 +- .../frost}/FrostMetalPillarBlock.java | 2 +- .../frost}/FrostMetalSlabBlock.java | 2 +- .../frost}/FrostMetalStairBlock.java | 2 +- .../block/decoration/frost/package-info.java | 4 + .../heavyiron}/HeavyIronBeamBlock.java | 16 +- .../heavyiron}/HeavyIronDoorBlock.java | 25 +- .../heavyiron}/HeavyIronPlateBlock.java | 2 +- .../heavyiron}/HeavyIronTrapdoorBlock.java | 23 +- .../heavyiron}/HeavyIronWallBlock.java | 2 +- .../decoration/heavyiron/package-info.java | 4 + .../block/decoration/package-info.java | 4 + .../entity/AccelerationRingBlockEntity.java | 36 +- .../ActivatorSlidingRailBlockEntity.java | 18 +- .../entity/ActiveSilencerBlockEntity.java | 89 +- .../entity/AdvancedComparatorBlockEntity.java | 61 +- .../block/entity/BaseChuteBlockEntity.java | 309 ++-- .../block/entity/BaseLaserBlockEntity.java | 112 +- .../block/entity/BaseMachineBlockEntity.java | 4 +- .../block/entity/BlackHoleBlockEntity.java | 4 +- .../CelestialForgingAnvilBlockEntity.java | 14 +- .../entity/ChargeCollectorBlockEntity.java | 39 +- .../block/entity/ChargerBlockEntity.java | 324 ++-- .../block/entity/ChuteBlockEntity.java | 32 +- .../entity/ConfinementChamberBlockEntity.java | 38 +- .../entity/CorruptedBeaconBlockEntity.java | 66 +- .../block/entity/CrabTrapBlockEntity.java | 24 +- .../entity/CreativeGeneratorBlockEntity.java | 39 +- .../entity/DeflectionRingBlockEntity.java | 103 +- .../DetectorSlidingRailBlockEntity.java | 7 +- .../block/entity/FishTankBlockEntity.java | 397 ++++ .../block/entity/FluidTankBlockEntity.java | 54 +- .../block/entity/HasMobBlockEntity.java | 88 +- .../entity/HeatCollectorBlockEntity.java | 26 +- .../block/entity/HeaterBlockEntity.java | 2 +- .../block/entity/HeliostatsBlockEntity.java | 86 +- .../entity/InductionLightBlockEntity.java | 4 +- .../entity/ItemCollectorBlockEntity.java | 104 +- .../block/entity/ItemDetectorBlockEntity.java | 87 +- .../entity/LargeFluidTankBlockEntity.java | 80 +- .../entity/LaserReceiverBlockEntity.java | 26 +- .../block/entity/LoadMonitorBlockEntity.java | 26 +- .../entity/MagneticChuteBlockEntity.java | 10 +- .../entity/MineralFountainBlockEntity.java | 39 +- .../block/entity/MobAmberBlockEntity.java | 18 +- .../block/entity/OverseerBlockEntity.java | 24 +- .../block/entity/PlasmaJetsBlockEntity.java | 110 +- .../entity/PowerConverterBlockEntity.java | 36 +- .../block/entity/PropelPistonBlockEntity.java | 64 +- .../entity/PulseGeneratorBlockEntity.java | 58 +- .../RemoteTransmissionPoleBlockEntity.java | 2 +- .../entity/ResentfulAmberBlockEntity.java | 25 +- .../block/entity/RubyLaserBlockEntity.java | 26 +- .../block/entity/RubyPrismBlockEntity.java | 16 +- .../block/entity/SimpleChuteBlockEntity.java | 195 +- .../SpaceOvercompressorBlockEntity.java | 18 +- .../block/entity/TeslaTowerBlockEntity.java | 91 +- .../entity/TransmissionPoleBlockEntity.java | 2 +- .../VoidEnergyCollectorBlockEntity.java | 50 +- .../block/entity/WhiteHoleBlockEntity.java | 4 +- .../batch/BaseBatchCraftingBlockEntity.java | 135 +- .../entity/batch/BatchCrafterBlockEntity.java | 94 +- .../entity/batch/BatchCutterBlockEntity.java | 139 +- .../block/entity/batch/package-info.java | 7 +- .../entity/heatable/HeatableBlockEntity.java | 18 +- .../block/entity/heatable/package-info.java | 7 +- .../BaseNestingShulkerBoxBlockEntity.java | 51 +- .../block/entity/nesting/package-info.java | 7 +- .../anvilcraft/block/entity/package-info.java | 7 +- .../TimeCountedPressurePlateBlockEntity.java | 30 +- .../block/entity/plate/package-info.java | 7 +- .../anvilcraft/block/fluid/ExpFluidBlock.java | 36 + .../block/{ => fluid}/MeltGemFluid.java | 2 +- .../anvilcraft/block/fluid/package-info.java | 4 + .../block/heatable/HeatableBlock.java | 36 +- .../heatable/OverheatedEmberMetalBlock.java | 2 +- .../block/heatable/RedhotBlock.java | 29 +- .../block/heatable/package-info.java | 7 +- .../anvilcraft/block/item/ChuteBlockItem.java | 26 - .../block/item/CursedBlockItem.java | 20 - .../block/item/EndDustBlockItem.java | 42 - .../block/item/HasMobBlockItem.java | 157 -- .../block/item/LevitationBlockItem.java | 20 - .../block/item/RadiationBlockItem.java | 20 - .../block/item/SuperHeavyBlockItem.java | 20 - .../anvilcraft/block/item/package-info.java | 7 - .../block/{ => laser}/BaseLaserBlock.java | 2 +- .../block/{ => laser}/LaserReceiverBlock.java | 10 +- .../block/laser/PropelPistonBlock.java | 322 ++++ .../block/{ => laser}/RubyLaserBlock.java | 9 +- .../block/{ => laser}/RubyPrismBlock.java | 10 +- .../anvilcraft/block/laser/package-info.java | 4 + .../{ => logistics/chute}/ChuteBlock.java | 89 +- .../logistics/chute/MagneticChuteBlock.java | 241 +++ .../logistics/chute/SimpleChuteBlock.java | 284 +++ .../block/logistics/chute/package-info.java | 4 + .../sliding/ActivatorSlidingRailBlock.java | 50 +- .../sliding/BaseSlidingRailBlock.java | 52 +- .../sliding/DetectorSlidingRailBlock.java | 10 +- .../{ => logistics}/sliding/ISlidingRail.java | 10 +- .../sliding/PoweredSlidingRailBlock.java | 42 +- .../logistics/sliding/SlidingRailBlock.java | 183 ++ .../sliding/SlidingRailStopBlock.java | 28 +- .../block/logistics/sliding/package-info.java | 4 + .../multipart/AbstractMultiPartBlock.java | 37 +- .../multipart/FlexibleMultiPartBlock.java | 20 +- .../block/multipart/MultiPartBlockEntity.java | 6 +- .../block/multipart/SimpleMultiPartBlock.java | 10 +- .../block/multipart/package-info.java | 7 +- .../block/nesting/NestingShulkerBoxBlock.java | 77 +- .../nesting/OverNestingShulkerBoxBlock.java | 76 +- .../SupercriticalNestingShulkerBoxBlock.java | 76 +- .../block/nesting/package-info.java | 7 +- .../dubhe/anvilcraft/block/package-info.java | 7 - .../HealthPercentPressurePlateBlock.java | 4 +- .../PlayerInventoryPressurePlateBlock.java | 2 +- .../plate/PowerLevelPressurePlateBlock.java | 20 +- .../plate/TimeCountedPressurePlateBlock.java | 4 +- .../anvilcraft/block/plate/package-info.java | 7 +- .../block/{ => power}/HeliostatsBlock.java | 4 +- .../block/{ => power}/LoadMonitorBlock.java | 12 +- .../PiezoelectricCrystalBlock.java | 4 +- .../batch/BaseBatchCraftingBlock.java | 77 +- .../{ => power}/batch/BatchCrafterBlock.java | 10 +- .../{ => power}/batch/BatchCutterBlock.java | 10 +- .../block/power/batch/package-info.java | 4 + .../{ => power/consumer}/DischargerBlock.java | 3 +- .../{ => power/consumer}/HeaterBlock.java | 6 +- .../consumer}/InductionLightBlock.java | 23 +- .../consumer}/ItemCollectorBlock.java | 51 +- .../{ => power/consumer}/TeslaTowerBlock.java | 30 +- .../block/power/consumer/package-info.java | 4 + .../converter}/BasePowerConverterBlock.java | 10 +- .../converter}/PowerConverterBigBlock.java | 2 +- .../converter}/PowerConverterMiddleBlock.java | 2 +- .../converter}/PowerConverterSmallBlock.java | 2 +- .../block/power/converter/package-info.java | 4 + .../generator}/ChargeCollectorBlock.java | 10 +- .../block/power/generator/ChargerBlock.java | 195 ++ .../generator}/CreativeGeneratorBlock.java | 7 +- .../generator}/HeatCollectorBlock.java | 10 +- .../generator}/VoidEnergyCollectorBlock.java | 14 +- .../block/power/generator/package-info.java | 4 + .../anvilcraft/block/power/package-info.java | 4 + .../ring}/AccelerationRingBlock.java | 24 +- .../{ => power/ring}/DeflectionRingBlock.java | 24 +- .../block/power/ring/package-info.java | 4 + .../RemoteTransmissionPoleBlock.java | 17 +- .../transmitting}/TransmissionPoleBlock.java | 13 +- .../power/transmitting/package-info.java | 4 + .../block/production/CrabTrapBlock.java | 219 +++ .../MineralFountainBlock.java | 27 +- .../block/production/package-info.java | 4 + .../block/sliding/SlidingRailBlock.java | 168 -- .../block/sliding/package-info.java | 7 - .../block/{ => special}/BlackHoleBlock.java | 23 +- .../block/special/PlasmaJetsBlock.java | 90 + .../block/{ => special}/WhiteHoleBlock.java | 11 +- .../block/special/package-info.java | 4 + .../dubhe/anvilcraft/block/state/Color.java | 41 +- .../block/state/Cube323PartHalf.java | 2 +- .../block/state/Cube3x3PartHalf.java | 2 +- .../block/state/DirectionCube232PartHalf.java | 2 +- .../block/state/DirectionCube3x3PartHalf.java | 8 +- .../block/state/OpenedCube3x3PartHalf.java | 2 +- .../anvilcraft/block/state/package-info.java | 7 +- .../block/{ => storage}/AmberBlock.java | 8 +- .../block/storage/EndDustBlock.java | 63 + .../{ => storage}/FerriteCoreMagnetBlock.java | 4 +- .../block/{ => storage}/FlintBlock.java | 10 +- .../block/storage/GunpowderBlock.java | 173 ++ .../block/{ => storage}/HasMobBlock.java | 2 +- .../{ => storage}/HollowMagnetBlock.java | 48 +- .../block/storage/LevitationPowderBlock.java | 63 + .../block/{ => storage}/MagnetBlock.java | 21 +- .../MagnetoElectricCoreBlock.java | 2 +- .../block/{ => storage}/MobAmberBlock.java | 19 +- .../{ => storage}/NegativeMatterBlock.java | 2 +- .../{ => storage}/ResentfulAmberBlock.java | 9 +- .../block/{ => storage}/ResinBlock.java | 8 +- .../block/{ => storage}/RottenFleshBlock.java | 8 +- .../SimpleConfinementAnvilonBlock.java | 2 +- .../block/{ => storage}/SugarBlock.java | 12 +- .../{ => storage}/TranscendiumBlock.java | 2 +- .../block/storage/VoidMatterBlock.java | 48 + .../block/storage/package-info.java | 4 + .../{ => utility}/ActiveSilencerBlock.java | 55 +- .../block/{ => utility}/ArrowBlock.java | 2 +- .../{ => utility}/BlockDevourerBlock.java | 58 +- .../block/{ => utility}/BlockPlacerBlock.java | 55 +- .../{ => utility}/ControllableSandBlock.java | 8 +- .../block/{ => utility}/ImpactPileBlock.java | 4 +- .../{ => utility}/MengerSpongeBlock.java | 22 +- .../block/{ => utility}/OverseerBlock.java | 6 +- .../block/utility/package-info.java | 4 + .../redstone}/AdvancedComparatorBlock.java | 70 +- .../redstone/BlockComparatorBlock.java | 186 ++ .../redstone}/ItemDetectorBlock.java | 34 +- .../redstone}/PulseGeneratorBlock.java | 66 +- .../block/utility/redstone/package-info.java | 4 + .../ConfinementChamberBlock.java | 27 +- .../CorruptedBeaconBlock.java | 4 +- .../{ => workstation}/CrushingTableBlock.java | 20 +- .../block/workstation/FishTankBlock.java | 249 +++ .../{ => workstation}/GiantAnvilBlock.java | 52 +- .../{ => workstation}/JewelCraftingTable.java | 11 +- .../{ => workstation}/NeoforgeBlock.java | 14 +- .../NeutronIrradiatorBlock.java | 9 +- .../SpaceOvercompressorBlock.java | 19 +- .../{ => workstation}/SpectralAnvilBlock.java | 15 +- .../StampingPlatformBlock.java | 26 +- .../TranscendenceAnvilBlock.java | 9 +- .../TransparentCraftingTableBlock.java | 294 +++ .../ember}/EmberAnvilBlock.java | 9 +- .../ember}/EmberGrindstoneBlock.java | 5 +- .../ember}/EmberSmithingTableBlock.java | 11 +- .../block/workstation/ember/package-info.java | 4 + .../frost}/FrostAnvilBlock.java | 9 +- .../frost}/FrostGrindstoneBlock.java | 5 +- .../frost}/FrostSmithingTableBlock.java | 2 +- .../block/workstation/frost/package-info.java | 4 + .../block/workstation/package-info.java | 4 + .../royal}/RoyalAnvilBlock.java | 9 +- .../royal}/RoyalGrindstoneBlock.java | 6 +- .../royal}/RoyalSmithingTableBlock.java | 4 +- .../block/workstation/royal/package-info.java | 4 + .../anvilcraft/client/AnvilCraftClient.java | 70 +- .../event/ClientBlockEventListener.java | 50 +- .../client/event/ClientEventListener.java | 55 +- .../GuiLayerRegistrationEventListener.java | 32 +- .../HammerEffectRenderEventListener.java | 88 +- .../LargeBlockPlacePreviewEventListener.java | 176 +- .../RegisterAdditionalEventListener.java | 92 +- .../client/event/RenderEventListener.java | 128 -- .../event/SubmitGeometryEventListener.java | 132 ++ .../event/WheelLifecycleEventListener.java | 352 ++-- .../anvilcraft/client/event/package-info.java | 7 +- .../gui/component/CycleFilterModeButton.java | 52 +- .../gui/component/EnableFilterButton.java | 39 +- .../gui/component/ItemCollectorButton.java | 23 +- .../gui/component/OutputDirectionButton.java | 51 +- .../client/gui/component/SilencerButton.java | 40 +- .../client/gui/component/Slider.java | 208 --- .../client/gui/component/SliderWidget.java | 181 ++ .../gui/component/SwitchableButton.java | 124 +- .../gui/component/TeslaTowerButton.java | 50 +- .../client/gui/component/TextWidget.java | 54 +- .../client/gui/component/TexturedButton.java | 32 +- .../client/gui/component/package-info.java | 7 +- .../gui/screen/ActiveSilencerScreen.java | 286 ++- .../gui/screen/AdvancedComparatorScreen.java | 129 +- .../client/gui/screen/AnvilHammerScreen.java | 764 -------- .../client/gui/screen/BaseChuteScreen.java | 75 +- .../client/gui/screen/BaseMachineScreen.java | 29 +- .../client/gui/screen/BatchCrafterScreen.java | 68 +- .../client/gui/screen/BatchCutterScreen.java | 128 +- .../client/gui/screen/EmberAnvilScreen.java | 65 +- .../gui/screen/EmberGrindstoneScreen.java | 118 +- .../gui/screen/EmberSmithingScreen.java | 62 +- .../gui/screen/EnergyWeaponMakeScreen.java | 151 +- .../client/gui/screen/FilterScreen.java | 46 +- .../client/gui/screen/FrostAnvilScreen.java | 71 +- .../gui/screen/FrostGrindstoneScreen.java | 105 +- .../gui/screen/FrostSmithingScreen.java | 155 +- .../client/gui/screen/IFilterScreen.java | 64 +- .../client/gui/screen/IntegrationScreen.java | 163 +- .../gui/screen/ItemCollectorScreen.java | 137 +- .../client/gui/screen/ItemDetectorScreen.java | 90 +- .../gui/screen/JewelCraftingScreen.java | 113 +- .../gui/screen/PulseGeneratorScreen.java | 107 +- .../client/gui/screen/RoyalAnvilScreen.java | 64 +- .../gui/screen/RoyalGrindstoneScreen.java | 83 +- .../gui/screen/RoyalSmithingScreen.java | 141 +- .../client/gui/screen/SliderScreen.java | 112 +- .../gui/screen/StructureToolScreen.java | 220 +-- .../client/gui/screen/TeslaTowerScreen.java | 249 ++- .../gui/screen/TranscendenceAnvilScreen.java | 61 +- .../client/gui/screen/package-info.java | 7 +- .../gui/tooltip/ClientFilterTooltip.java | 25 +- .../client/gui/tooltip/package-info.java | 7 +- .../client/hud/IonoCraftBackpackHUD.java | 59 +- .../anvilcraft/client/hud/package-info.java | 7 +- .../anvilcraft/client/init/ModAtlasIds.java | 8 + .../client/init/ModEquipmentAssets.java | 13 + .../client/init/ModKeyMappings.java | 10 +- .../client/init/ModModelLayers.java | 14 +- .../client/init/ModRenderPipelines.java | 58 + .../client/init/ModRenderTargets.java | 80 - .../client/init/ModRenderTypes.java | 197 +- .../anvilcraft/client/init/ModShaders.java | 128 -- .../client/init/ModTextureAtlases.java | 8 + .../client/init/ModTooltipComponents.java | 7 + .../anvilcraft/client/init/package-info.java | 7 +- .../dubhe/anvilcraft/client/package-info.java | 7 +- .../client/particle/PlasmaJetsParticle.java | 47 +- .../client/particle/package-info.java | 7 +- .../anvilcraft/client/renderer/Line.java | 15 +- .../AdvancedComparatorBlockEntityRender.java | 64 - .../AdvancedComparatorRenderer.java | 58 + .../BaseFluidHandlerHolderRenderer.java | 83 + .../blockentity/BaseShowItemRenderer.java | 168 +- .../blockentity/BatchCraftingBERenderer.java | 23 - .../blockentity/BatchCraftingRenderer.java | 53 + .../renderer/blockentity/CFARenderer.java | 89 + ...estialForgingAnvilBlockEntityRenderer.java | 113 -- .../blockentity/ChargeCollectorRenderer.java | 28 +- .../blockentity/ChargerBlockRenderer.java | 66 - .../renderer/blockentity/ChargerRenderer.java | 59 + .../ConfinementChamberRenderer.java | 23 +- .../blockentity/CorruptedBeaconRenderer.java | 287 +-- .../CreativeGeneratorRenderer.java | 27 +- .../blockentity/FishTankRenderer.java | 169 ++ .../FluidTankBlockEntityRenderer.java | 89 - .../blockentity/FluidTankRenderer.java | 46 + .../blockentity/HasMobBlockRenderer.java | 205 ++- .../blockentity/HeatCollectorRenderer.java | 26 +- .../blockentity/HeliostatsRenderer.java | 109 +- .../LargeFluidTankBlockEntityRenderer.java | 273 --- .../blockentity/LargeFluidTankRenderer.java | 46 + .../blockentity/LaserBlockEntityRenderer.java | 76 + .../blockentity/LaserBlockRenderer.java | 64 - .../blockentity/PlasmaJetsRenderer.java | 20 - .../blockentity/PowerProducerRenderer.java | 77 +- .../blockentity/TeslaTowerRenderer.java | 121 +- .../VoidEnergyCollectorRenderer.java | 26 +- .../renderer/blockentity/package-info.java | 7 +- .../state/AdvancedComparatorRenderState.java | 13 + .../state/BaseShowItemRenderState.java | 18 + .../blockentity/state/CFARenderState.java | 16 + .../state/FishTankRenderState.java | 22 + .../state/FluidHandlerRenderState.java | 33 + .../state/HasMobBlockRenderState.java | 13 + .../state/HeliostatsRenderState.java | 21 + .../blockentity/state/LaserRenderState.java | 44 + .../state/PowerGeneratorRenderState.java | 14 + .../state/TeslaTowerRenderState.java | 18 + .../blockentity/state/package-info.java | 4 + .../entity/AscendingBlockRenderer.java | 81 +- .../entity/CauldronOutletRenderer.java | 100 +- .../renderer/entity/IonocraftRenderer.java | 53 +- .../entity/MagnetizedNodeEntityRenderer.java | 58 +- .../renderer/entity/SlidingBlockRenderer.java | 95 +- .../entity/SpectralBlockRenderer.java | 80 +- .../entity/SpectralProjectileRenderer.java | 235 +-- .../entity/ThrownHeavyHalberdRenderer.java | 73 +- .../entity/model/CauldronOutletModel.java | 20 +- .../entity/model/IonocraftBackpackModel.java | 10 +- .../entity/model/IonocraftModel.java | 21 +- .../entity/model/MagnetizedNodeModel.java | 93 + .../entity/model/ThrownHeavyHalberdModel.java | 84 + .../renderer/entity/model/package-info.java | 4 + .../client/renderer/entity/package-info.java | 7 +- .../state/CauldronOutletRenderState.java | 22 + .../entity/state/IonocraftRenderState.java | 6 + .../state/MagnetizedNodeRenderState.java | 10 + .../entity/state/SlidingBlockRenderState.java | 14 + .../state/SpectralProjectileRenderState.java | 14 + .../state/ThrownHeavyHalberdRenderState.java | 18 + .../renderer/entity/state/package-info.java | 4 + .../item/AbstractItemInHandRenderer.java | 25 +- .../item/CrabClawItemInHandRenderer.java | 121 +- .../item/CustomRenderItemClientExtension.java | 21 - .../item/ExtraItemDisplayRenderer.java | 86 + .../item/IExtraItemDisplayRenderer.java | 86 - .../renderer/item/IGuiItemRenderer.java | 6 +- .../client/renderer/item/IItemRenderer.java | 7 +- .../item/ItemInHandRendererManager.java | 40 +- .../item/SpectralSlingshotRenderer.java | 199 +- .../item/SpectralWeaponLauncherRenderer.java | 210 +-- .../WrappingItemCustomRenderedModels.java | 117 +- .../IonoCraftBackpackDecoration.java | 27 - .../IonocraftBackpackDecoration.java | 27 + .../item/decoration/package-info.java | 7 +- .../client/renderer/item/package-info.java | 7 +- .../item/state/SpectralRenderState.java | 12 + .../laser/CachedLaserBlockEntityRenderer.java | 43 + .../client/renderer/laser/LaserCompiler.java | 148 +- .../client/renderer/laser/LaserRenderer.java | 24 - .../client/renderer/laser/LaserState.java | 52 - .../client/renderer/laser/package-info.java | 7 +- .../client/renderer/package-info.java | 7 +- .../client/support/AmuletSelectorSupport.java | 165 +- .../support/FeatureRendererSupport.java | 36 + .../client/support/FluidRenderHelper.java | 198 ++ .../client/support/InspectionSupport.java | 72 +- .../support/LevelLikeDisplaySupport.java | 31 + .../client/support/PillSelectorSupport.java | 73 +- .../client/support/PowerGridSupport.java | 69 +- .../client/support/RenderModelSupport.java | 130 -- .../client/support/RenderSupport.java | 593 +----- .../support/TranslucentVertexConsumer.java | 51 + .../client/support/package-info.java | 7 +- .../anvilcraft/command/MultiBlockCommand.java | 7 +- .../anvilcraft/command/MultiphaseCommand.java | 6 +- .../anvilcraft/command/PowerGridCommand.java | 76 + .../anvilcraft/command/PowergridCommand.java | 78 - .../anvilcraft/command/package-info.java | 7 +- .../config/AnvilCraftClientConfig.java | 2 +- .../dubhe/anvilcraft/config/package-info.java | 7 +- .../anvilcraft/constant/SharedTextures.java | 72 +- .../anvilcraft/data/AnvilCraftDatagen.java | 55 +- .../data/advancement/AdvancementHandler.java | 9 - .../advancement/AnvilCraftAdvancement.java | 21 - .../advancement/ModAdvancementsHandler.java | 840 +++++++++ .../data/advancement/package-info.java | 7 +- .../anvilcraft/data/lang/ItemTooltipLang.java | 14 +- .../data/lang/ToolPropertyLang.java | 6 + .../anvilcraft/data/lang/package-info.java | 7 +- .../dubhe/anvilcraft/data/package-info.java | 7 +- .../provider/ModDamageTypeTagProvider.java | 32 - .../provider/ModLootModifierProvider.java | 4 +- .../ModParticleDescriptionProvider.java | 11 +- .../data/provider/ModPoiTagProvider.java | 28 - .../loot/BeheadingLootSubProvider.java | 90 +- .../loot/CrabTrapLootSubProvider.java | 26 +- .../data/provider/loot/package-info.java | 7 +- .../data/provider/package-info.java | 7 +- .../AnvilCollisionCraftRecipeLoader.java | 41 +- .../recipe/BlockCompressRecipeLoader.java | 85 +- .../data/recipe/BlockCrushRecipeLoader.java | 2 +- .../data/recipe/BlockSmearRecipeLoader.java | 6 +- .../data/recipe/BulgingRecipeLoader.java | 20 +- .../recipe/ChargerChargingRecipeLoader.java | 19 +- .../data/recipe/ConcreteRecipeLoader.java | 24 +- .../data/recipe/CookingRecipeLoader.java | 11 +- .../data/recipe/CoolingRecipeLoader.java | 25 - .../data/recipe/DeformationRecipeLoader.java | 30 +- .../recipe/EnergyWeaponMakeRecipeLoader.java | 7 +- .../data/recipe/ItemCompressRecipeLoader.java | 96 +- .../data/recipe/ItemCrushRecipeLoader.java | 82 +- .../data/recipe/ItemInjectRecipeLoader.java | 2 +- .../recipe/JewelCraftingRecipeLoader.java | 91 +- .../data/recipe/MassInjectRecipeLoader.java | 6 +- .../data/recipe/MeshRecipeLoader.java | 54 +- .../recipe/MineralFountainRecipeLoader.java | 23 +- .../data/recipe/MobTransformRecipeLoader.java | 2 +- .../MobTransformWithItemRecipeLoader.java | 12 +- .../MultiBlockConversionRecipeLoader.java | 16 +- .../data/recipe/MultiBlockRecipeLoader.java | 8 +- .../MultipleToOneSmithingRecipeLoader.java | 9 +- .../NeutronIrradiationRecipeLoader.java | 18 +- .../data/recipe/PermutationRecipeLoader.java | 26 +- .../data/recipe/PillRecipeLoader.java | 13 - .../recipe/PortalConversionRecipeLoader.java | 4 +- .../anvilcraft/data/recipe/RecipeHandler.java | 4 +- .../recipe/RegistrumBlockRecipeLoader.java | 1615 ++++++++++------- .../recipe/RegistrumItemRecipeLoader.java | 890 +++++---- .../recipe/SpecialCraftingRecipeLoader.java | 7 +- .../data/recipe/SqueezingRecipeLoader.java | 22 +- .../data/recipe/StampingRecipeLoader.java | 44 +- .../data/recipe/SuperHeatingRecipeLoader.java | 50 +- .../data/recipe/TimeWarpRecipeLoader.java | 115 +- .../data/recipe/UnpackRecipeLoader.java | 2 +- .../data/recipe/VanillaRecipesLoader.java | 126 +- .../anvilcraft/data/recipe/package-info.java | 7 +- .../anvilcraft/data/tags/BlockTagLoader.java | 646 ++++--- .../data/tags/DamageTypeTagLoader.java | 68 +- .../data/tags/EnchantmentTagLoader.java | 22 +- .../data/tags/EntityTypeTagLoader.java | 54 +- .../anvilcraft/data/tags/FluidTagLoader.java | 51 +- .../anvilcraft/data/tags/ItemTagLoader.java | 453 ++--- .../data/tags/PoiTypeTagLoader.java | 18 + .../anvilcraft/data/tags/TagsHandler.java | 5 + .../anvilcraft/data/tags/package-info.java | 7 +- .../dubhe/anvilcraft/dfu/package-info.java | 7 +- .../anvilcraft/enchantment/FellingEffect.java | 4 +- .../enchantment/HarvestLeftClickEffect.java | 11 +- .../enchantment/HarvestRightClickEffect.java | 10 +- .../anvilcraft/enchantment/package-info.java | 7 +- .../entity/AnimateAscendingBlockEntity.java | 23 +- .../entity/CauldronOutletEntity.java | 81 +- .../entity/FallingGiantAnvilEntity.java | 57 +- .../entity/FallingSpectralBlockEntity.java | 58 +- .../entity/FloatingBlockEntity.java | 21 +- .../anvilcraft/entity/IonocraftEntity.java | 40 +- .../entity/LevitatingBlockEntity.java | 2 +- .../entity/MagnetizedNodeEntity.java | 46 +- .../anvilcraft/entity/SlidingBlockEntity.java | 52 +- .../entity/SpectralProjectileEntity.java | 87 +- .../entity/StandableFallingBlockEntity.java | 5 +- .../StandableLevitatingBlockEntity.java | 3 +- .../ThrownEmberMetalHeavyHalberdEntity.java | 6 +- .../ThrownFrostMetalHeavyHalberdEntity.java | 6 +- .../entity/ThrownHeavyHalberdEntity.java | 110 +- ...ThrownTranscendenceHeavyHalberdEntity.java | 6 +- .../entity/ai/goal/package-info.java | 7 +- .../entity/model/MagnetizedNodeModel.java | 97 - .../entity/model/ThrownHeavyHalberdModel.java | 99 - .../anvilcraft/entity/model/package-info.java | 7 - .../dubhe/anvilcraft/entity/package-info.java | 7 +- .../anvilcraft/event/BlockEventListener.java | 6 +- .../event/BreakBlockEventListener.java | 4 +- .../event/CapabilitiesEventListener.java | 54 - .../CauldronFluidContentEventListener.java | 24 - .../event/CauldronOutletEventListener.java | 10 +- .../event/DatapackEventListener.java | 22 - .../FallingBlockCollisionEventListener.java | 63 +- .../event/InWorldRecipeEventListener.java | 12 +- .../event/LightningEventListener.java | 7 +- .../event/LivingEntityEventListener.java | 32 +- .../event/LootTableEventListener.java | 19 +- .../event/PistonMoveBlockListener.java | 2 +- .../anvilcraft/event/PlayerEventListener.java | 32 +- .../event/PlayerTickEventHandler.java | 4 +- .../PlayerWearAnvilHammerEventListener.java | 2 +- .../anvilcraft/event/PortalEventListener.java | 4 +- .../RegisterColorHandlersEventListener.java | 25 - .../anvilcraft/event/ReloadEventListener.java | 30 + .../event/ServerLifecycleEventListener.java | 4 +- .../anvilcraft/event/SoundEventListener.java | 4 +- .../event/TooltipEventListener.java | 101 ++ .../event/UseOnBlockEventListener.java | 5 +- .../event/VillagerEventListener.java | 104 -- .../event/anvil/AnvilEventListener.java | 30 +- ...iezoelectricCrystalBlockEventListener.java | 4 +- .../anvil/AnvilHurtVillagerEventListener.java | 44 +- .../anvilcraft/event/anvil/package-info.java | 7 +- .../GiantAnvilLandingEventListener.java | 33 +- .../giantanvil/IShockBehaviorDefinition.java | 101 -- .../event/giantanvil/package-info.java | 7 +- .../event/giantanvil/shock/DestroyMode.java | 8 +- .../event/giantanvil/shock/DestroyType.java | 19 +- .../event/giantanvil/shock/ShockContext.java | 14 +- .../event/giantanvil/shock/package-info.java | 7 +- .../dubhe/anvilcraft/event/package-info.java | 7 +- .../anvilcraft/fluid/PowderSnowFluid.java | 79 + .../dubhe/anvilcraft/fluid/package-info.java | 4 + .../anvilcraft/init/ModAdvancements.java | 890 --------- .../anvilcraft/init/ModAnvilBehaviors.java | 16 +- .../dubhe/anvilcraft/init/ModAttachments.java | 2 +- .../anvilcraft/init/ModBuiltinPacks.java | 2 +- .../anvilcraft/init/ModCapabilities.java | 74 + .../anvilcraft/init/ModColorHandlers.java | 45 + .../anvilcraft/init/ModDataAttachments.java | 44 +- .../anvilcraft/init/ModDispenserBehavior.java | 25 +- .../dubhe/anvilcraft/init/ModHeaterInfos.java | 2 +- .../dubhe/anvilcraft/init/ModInspections.java | 15 +- .../dubhe/anvilcraft/init/ModMenuTypes.java | 5 +- .../init/block/ModBlockEntities.java | 469 ++--- .../init/block/ModBlockEntityTags.java | 10 - .../anvilcraft/init/block/ModBlockTags.java | 6 +- .../anvilcraft/init/block/ModBlocks.java | 1165 ++++++------ .../init/block/ModCauldronFluidContents.java | 35 + .../anvilcraft/init/block/ModFluidTags.java | 5 +- .../anvilcraft/init/block/ModFluids.java | 110 +- .../init/block/ModMultiblockDefinitions.java | 4 +- .../anvilcraft/init/block/package-info.java | 7 +- .../anvilcraft/init/command/ModCommands.java | 9 +- .../ModEnchantmentEffectComponents.java | 11 +- .../init/enchantment/ModEnchantmentTags.java | 4 +- .../init/enchantment/ModEnchantments.java | 10 +- .../init/enchantment/package-info.java | 7 +- .../init/entity/ModDamageTypeTags.java | 4 +- .../init/entity/ModDamageTypes.java | 10 +- .../anvilcraft/init/entity/ModEntities.java | 39 +- .../init/entity/ModEntityTypeTags.java | 4 +- .../anvilcraft/init/entity/ModTradeSets.java | 72 + .../init/entity/ModVillagerTrades.java | 132 ++ .../anvilcraft/init/entity/ModVillagers.java | 25 +- .../anvilcraft/init/entity/package-info.java | 7 +- .../anvilcraft/init/item/ModAmuletTypes.java | 6 +- .../anvilcraft/init/item/ModComponents.java | 53 +- .../anvilcraft/init/item/ModConsumables.java | 43 + .../init/item/ModConsumeEffects.java | 54 + .../init/item/ModDataComponentPredicates.java | 50 + .../init/item/ModDeathProtections.java | 43 + .../anvilcraft/init/item/ModFoodItems.java | 163 +- .../dubhe/anvilcraft/init/item/ModFoods.java | 25 + .../init/item/ModItemProperties.java | 9 - .../init/item/ModItemSubPredicates.java | 40 - .../anvilcraft/init/item/ModItemTags.java | 13 +- .../dubhe/anvilcraft/init/item/ModItems.java | 853 +++++---- .../init/item/ModToolMaterials.java | 48 + .../anvilcraft/init/item/package-info.java | 7 +- .../init/loot/ModLootContextParamSets.java | 12 +- .../init/loot/ModLootItemConditions.java | 17 - .../init/loot/ModLootItemFunctions.java | 14 +- .../anvilcraft/init/loot/ModLootTables.java | 4 +- .../anvilcraft/init/loot/package-info.java | 7 +- .../dubhe/anvilcraft/init/package-info.java | 7 +- .../init/recipe/ModRecipePredicateTypes.java | 6 + .../init/recipe/ModRecipeSerializers.java | 192 ++ .../init/recipe/ModRecipeTypes.java | 249 +-- .../init/recipe/ModSlotDisplays.java | 20 + .../anvilcraft/init/recipe/package-info.java | 7 +- .../integration/IntegrationUtil.java | 12 +- .../integration/iris/package-info.java | 7 +- .../jade/AnvilCraftJadePlugin.java | 18 +- .../integration/jade/package-info.java | 7 +- .../provider/CrabTrapStorageProvider.java | 37 +- .../jade/provider/HeatableBlockProvider.java | 26 +- .../jade/provider/ItemDetectorProvider.java | 41 +- .../jade/provider/PowerBlockProvider.java | 50 +- .../jade/provider/RubyPrismProvider.java | 21 +- .../provider/SpaceOvercompressorProvider.java | 23 +- .../client/CrabTrapStorageClientProvider.java | 26 + .../client/HeatableBlockClientProvider.java | 33 + .../client/ItemDetectorClientProvider.java | 47 + .../client/PowerBlockClientProvider.java | 60 + .../client/RubyPrismClientProvider.java | 28 + .../SpaceOvercompressorClientProvider.java | 30 + .../jade/provider/client/package-info.java | 4 + .../jade/provider/package-info.java | 7 +- .../integration/jei/AnvilCraftJeiPlugin.java | 127 +- .../category/AnvilCollisionCraftCategory.java | 208 +-- .../category/BeaconConversionCategory.java | 105 +- .../jei/category/ChargerChargingCategory.java | 108 +- .../jei/category/JewelCraftingCategory.java | 62 +- .../jei/category/MobTransformCategory.java | 105 +- .../MobTransformWithItemCategory.java | 104 +- .../MultipleToOneSmithingCategory.java | 50 +- .../category/PortalConversionCategory.java | 42 +- .../category/TranscendiumRecipeCategory.java | 123 +- .../jei/category/VoidDecayCategory.java | 78 +- .../anvil/AbstractProgressCategory.java | 32 +- .../category/anvil/BlockCompressCategory.java | 106 +- .../category/anvil/BlockCrushCategory.java | 116 +- .../category/anvil/BlockSmearCategory.java | 101 +- .../jei/category/anvil/BoilingCategory.java | 83 +- .../jei/category/anvil/BulgingCategory.java | 181 +- .../anvil/CementStainingCategory.java | 82 +- .../jei/category/anvil/ConcreteCategory.java | 100 +- .../jei/category/anvil/CookingCategory.java | 54 +- .../category/anvil/ItemCompressCategory.java | 45 +- .../jei/category/anvil/ItemCrushCategory.java | 49 +- .../category/anvil/ItemInjectCategory.java | 96 +- .../category/anvil/MassInjectCategory.java | 111 +- .../category/anvil/MeshRecipeCategory.java | 61 +- .../anvil/NeutronIrradiationCategory.java | 120 +- .../jei/category/anvil/SqueezingCategory.java | 127 +- .../jei/category/anvil/StampingCategory.java | 80 +- .../category/anvil/SuperHeatingCategory.java | 107 +- .../jei/category/anvil/TimeWarpCategory.java | 160 +- .../jei/category/anvil/UnpackCategory.java | 52 +- .../jei/category/anvil/package-info.java | 7 +- .../extension/CanningFoodExtension.java | 34 +- .../extension/PillRecipeExtension.java | 69 +- .../jei/category/extension/package-info.java | 7 +- .../MultiBlockConversionCategory.java | 185 +- .../MultiBlockCraftingCategory.java | 129 +- .../jei/category/multiblock/package-info.java | 7 +- .../jei/category/package-info.java | 7 +- .../jei/drawable/DrawableBlockStateIcon.java | 13 +- .../integration/jei/drawable/JeiButton.java | 4 +- .../jei/drawable/package-info.java | 7 +- .../jei/handlers/GhostIngredientHandler.java | 6 +- .../jei/handlers/package-info.java | 7 +- .../integration/jei/package-info.java | 7 +- .../jei/recipe/BeaconConversionRecipe.java | 13 +- .../jei/recipe/CementStainingRecipe.java | 2 +- .../jei/recipe/ColoredConcreteRecipe.java | 10 +- .../jei/recipe/MeshRecipeGroup.java | 12 +- .../jei/recipe/VoidDecayRecipe.java | 16 +- .../integration/jei/recipe/package-info.java | 7 +- .../integration/jei/util/BlockTagUtil.java | 10 +- .../integration/jei/util/JeiRecipeUtil.java | 46 +- .../integration/jei/util/JeiRenderHelper.java | 48 +- .../integration/jei/util/JeiSlotUtil.java | 97 +- .../jei/util/JeiTextureConstants.java | 34 - .../integration/jei/util/JeiTextures.java | 38 + .../integration/jei/util/package-info.java | 7 +- .../anvilcraft/integration/package-info.java | 7 +- .../inventory/ActiveSilencerMenu.java | 21 +- .../inventory/AdvancedComparatorMenu.java | 11 +- .../anvilcraft/inventory/BaseChuteMenu.java | 29 +- .../anvilcraft/inventory/BaseMachineMenu.java | 2 +- .../inventory/BatchCrafterMenu.java | 56 +- .../anvilcraft/inventory/BatchCutterMenu.java | 46 +- .../dubhe/anvilcraft/inventory/ChuteMenu.java | 2 +- .../anvilcraft/inventory/EmberAnvilMenu.java | 6 +- .../inventory/EmberGrindstoneMenu.java | 14 +- .../inventory/EmberSmithingMenu.java | 278 +-- .../inventory/EnergyWeaponMakeMenu.java | 5 +- .../anvilcraft/inventory/FilterMenu.java | 26 +- .../anvilcraft/inventory/FrostAnvilMenu.java | 6 +- .../inventory/FrostGrindstoneMenu.java | 9 +- .../inventory/FrostSmithingMenu.java | 124 +- .../inventory/ItemCollectorMenu.java | 30 +- .../inventory/ItemDetectorMenu.java | 14 +- .../inventory/JewelCraftingMenu.java | 144 +- .../inventory/MagneticChuteMenu.java | 2 +- .../anvilcraft/inventory/NeoforgeMenu.java | 4 +- .../inventory/PulseGeneratorMenu.java | 4 +- .../anvilcraft/inventory/RoyalAnvilMenu.java | 6 +- .../inventory/RoyalGrindstoneMenu.java | 50 +- .../inventory/RoyalSmithingMenu.java | 176 +- .../anvilcraft/inventory/SliderMenu.java | 4 +- .../inventory/StructureToolMenu.java | 8 +- .../anvilcraft/inventory/TeslaTowerMenu.java | 14 +- .../inventory/TranscendenceAnvilMenu.java | 10 +- .../inventory/component/FilteredSlot.java | 3 +- .../component/jewel/JewelInputSlot.java | 52 +- .../component/jewel/JewelResultSlot.java | 22 +- .../component/jewel/package-info.java | 7 +- .../inventory/component/package-info.java | 7 +- .../inventory/container/FilterContainer.java | 20 +- .../container/FilterOnlyContainer.java | 54 +- .../container/JewelSourceContainer.java | 8 - .../inventory/container/package-info.java | 7 +- .../anvilcraft/inventory/package-info.java | 7 +- .../anvilcraft/item/AmethystAxeItem.java | 10 - .../anvilcraft/item/AmethystHoeItem.java | 10 - .../anvilcraft/item/AmethystPickaxeItem.java | 10 - .../anvilcraft/item/AmethystShovelItem.java | 10 - .../anvilcraft/item/AmethystSwordItem.java | 9 - .../dubhe/anvilcraft/item/CannedFoodItem.java | 95 - .../dubhe/anvilcraft/item/CrabClawItem.java | 111 -- .../dev/dubhe/anvilcraft/item/DiskItem.java | 151 -- .../dubhe/anvilcraft/item/DragonRodItem.java | 241 --- .../anvilcraft/item/EmberAnvilHammerItem.java | 47 - .../anvilcraft/item/EmberMetalAxeItem.java | 16 - .../item/EmberMetalHeavyHalberdItem.java | 35 - .../anvilcraft/item/EmberMetalHoeItem.java | 16 - .../anvilcraft/item/EmberMetalIngotItem.java | 36 - .../item/EmberMetalPickaxeItem.java | 16 - .../item/EmberMetalResonatorItem.java | 20 - .../anvilcraft/item/EmberMetalShovelItem.java | 16 - .../anvilcraft/item/EmberMetalSwordItem.java | 16 - .../item/EnergyWeaponPlatformItem.java | 32 - .../dev/dubhe/anvilcraft/item/FilterItem.java | 113 -- .../anvilcraft/item/FishTankBlockItem.java | 40 - .../anvilcraft/item/FrostMetalAxeItem.java | 15 - .../item/FrostMetalHeavyHalberdItem.java | 35 - .../anvilcraft/item/FrostMetalHoeItem.java | 15 - .../item/FrostMetalPickaxeItem.java | 15 - .../item/FrostMetalResonatorItem.java | 20 - .../anvilcraft/item/FrostMetalShovelItem.java | 15 - .../anvilcraft/item/FrostMetalSwordItem.java | 15 - .../dubhe/anvilcraft/item/GuideBookItem.java | 52 - .../anvilcraft/item/HeavyHalberdCoreItem.java | 55 - .../item/IInventoryCarriedAware.java | 4 +- .../item/IonoCraftBackpackItem.java | 286 --- .../dev/dubhe/anvilcraft/item/MagnetItem.java | 50 - .../dev/dubhe/anvilcraft/item/ModFoods.java | 36 - .../dev/dubhe/anvilcraft/item/ModTiers.java | 111 -- .../anvilcraft/item/MultiphaseMatterItem.java | 75 - .../dubhe/anvilcraft/item/MultitoolItem.java | 577 ------ .../dubhe/anvilcraft/item/PillBoxItem.java | 129 -- .../dev/dubhe/anvilcraft/item/PillItem.java | 78 - .../dubhe/anvilcraft/item/RecoveryPearl.java | 78 - .../anvilcraft/item/ResonatorCoreItem.java | 56 - .../dubhe/anvilcraft/item/ResonatorItem.java | 454 ----- .../anvilcraft/item/RoyalAnvilHammerItem.java | 37 - .../dubhe/anvilcraft/item/RoyalAxeItem.java | 12 - .../dubhe/anvilcraft/item/RoyalHoeItem.java | 12 - .../anvilcraft/item/RoyalPickaxeItem.java | 12 - .../anvilcraft/item/RoyalShovelItem.java | 12 - .../anvilcraft/item/RoyalSteelIngotItem.java | 36 - .../dubhe/anvilcraft/item/RoyalSwordItem.java | 12 - .../dubhe/anvilcraft/item/SeedsPackItem.java | 48 - .../item/SpectralSlingshotItem.java | 560 ------ .../anvilcraft/item/StructureToolItem.java | 160 -- .../item/TranscendenceAnvilHammerItem.java | 51 - .../item/TranscendenceHeavyHalberdItem.java | 77 - .../item/TranscendenceResonatorItem.java | 64 - .../anvilcraft/item/abnormal/CursedItem.java | 10 +- .../anvilcraft/item/abnormal/IAbnormal.java | 6 +- .../anvilcraft/item/abnormal/ICursed.java | 2 +- .../anvilcraft/item/abnormal/ILevitation.java | 4 +- .../anvilcraft/item/abnormal/ISuperHeavy.java | 2 +- .../item/abnormal/LevitationItem.java | 10 +- .../item/abnormal/RadiationItem.java | 10 +- .../item/abnormal/SuperHeavyItem.java | 10 +- .../item/abnormal/package-info.java | 7 +- .../anvilcraft/item/amulet/AmuletBoxItem.java | 46 +- .../item/amulet/ComradeAmuletItem.java | 43 +- .../anvilcraft/item/amulet/package-info.java | 7 +- .../item/armor/IonoCraftBackpackItem.java | 229 +++ .../anvilcraft/item/armor/package-info.java | 4 + .../anvilcraft/item/block/ChuteBlockItem.java | 27 + .../item/block/CursedBlockItem.java | 22 + .../item/block/EndDustBlockItem.java | 41 + .../item/block/FishTankBlockItem.java | 35 + .../block}/FlexibleMultiPartBlockItem.java | 16 +- .../block}/FrostMetalBlockItem.java | 8 +- .../item/block/HasMobBlockItem.java | 132 ++ .../block}/HeatableBlockItem.java | 4 +- .../item => item/block}/HeliostatsItem.java | 47 +- .../item/block/LevitationBlockItem.java | 22 + .../block}/MengerSpongeBlockItem.java | 6 +- .../block}/MultiphaseMatterBlockItem.java | 8 +- .../block}/PlaceInWaterBlockItem.java | 12 +- .../item/block/RadiationBlockItem.java | 22 + .../item => item/block}/ResinBlockItem.java | 14 +- .../block}/ShulkerContainerBlockItem.java | 4 +- .../block}/SimpleMultiPartBlockItem.java | 4 +- .../item/block/SuperHeavyBlockItem.java | 22 + .../item/{ => block}/TeslaTowerItem.java | 8 +- .../block}/UncontainableBlockItem.java | 2 +- .../anvilcraft/item/block/package-info.java | 4 + .../anvilcraft/item/food/CannedFoodItem.java | 64 + .../item/{ => food}/UtusanItem.java | 15 +- .../anvilcraft/item/food/package-info.java | 4 + .../item/{ => ingredients}/CapacitorItem.java | 2 +- .../item/ingredients/EmberMetalIngotItem.java | 36 + .../{ => ingredients}/EmptyCapacitorItem.java | 2 +- .../EmptySuperCapacitorItem.java | 2 +- .../item/{ => ingredients}/ExpGemItem.java | 22 +- .../ingredients/HeavyHalberdCoreItem.java | 55 + .../ingredients/MultiphaseMatterItem.java | 75 + .../MultiphaseTranscendiumItem.java | 16 +- .../item/ingredients/ResonatorCoreItem.java | 56 + .../item/ingredients/RoyalSteelIngotItem.java | 36 + .../{ => ingredients}/SuperCapacitorItem.java | 2 +- .../item/{ => ingredients}/TopazItem.java | 12 +- .../item/ingredients/package-info.java | 4 + .../dubhe/anvilcraft/item/package-info.java | 7 +- .../property/FlightTimePropertyFunction.java | 19 - .../item/property/component/BoxContents.java | 39 +- .../property/component/CanTakeOutAmmo.java | 31 + .../item/property/component/DevourRange.java | 62 + .../item/property/component/DiskData.java | 22 +- .../item/property/component/Eternal.java | 25 +- .../item/property/component/Ferocious.java | 22 +- .../property/component/FilterContent.java | 34 +- .../property/component/FireReforging.java | 24 + .../item/property/component/FlightTime.java | 40 + .../item/property/component/Merciless.java | 21 +- .../property/component/MultiphaseRef.java | 29 +- .../OverLimitItemContainerContents.java | 49 +- .../property/component/PillBocContents.java | 125 -- .../property/component/PillBoxContents.java | 125 ++ .../item/property/component/Providence.java | 4 +- .../item/property/component/SavedEntity.java | 43 +- .../property/component/SignedPlayers.java | 73 +- .../item/property/component/StoredEnergy.java | 41 + .../item/property/component/StoredItem.java | 23 +- .../property/component/StructureData.java | 22 +- .../item/property/component/package-info.java | 7 +- .../PreventShrinkingConsumeEffect.java | 36 + .../consume/SetFoodLevelConsumeEffect.java | 39 + .../consume/SetRagedConsumeEffect.java | 27 + .../TeleportToRespawnPointConsumeEffect.java | 90 + .../consume/TryTotemsInBoxConsumeEffect.java | 44 + .../item/property/consume/package-info.java | 4 + .../item/property/package-info.java | 7 +- .../predicate/IntegerComponentPredicate.java | 33 + .../predicate/ItemEnchCountPredicate.java | 45 + .../ItemEnchantmentCountPredicate.java | 40 - .../predicate/ItemSavedEntityPredicate.java | 49 +- .../item/property/predicate/package-info.java | 7 +- .../EmberMetalUpgradeTemplateItem.java | 25 +- .../FrostMetalUpgradeTemplateItem.java | 24 +- .../RoyalSteelUpgradeTemplateItem.java | 28 +- .../TranscendiumUpgradeTemplateItem.java | 23 +- .../frost/DeformationTemplateItem.java | 16 +- .../frost/PermutationTemplateItem.java | 8 +- .../item/template/frost/package-info.java | 7 +- .../mto/BaseMultipleToOneTemplateItem.java | 4 +- .../template/mto/EightToOneTemplateItem.java | 16 +- .../template/mto/FourToOneTemplateItem.java | 6 +- .../template/mto/TwoToOneTemplateItem.java | 6 +- .../item/template/mto/package-info.java | 7 +- .../item/template/package-info.java | 7 +- .../item/{ => tool}/AnvilHammerItem.java | 108 +- .../anvilcraft/item/tool/DragonRodItem.java | 195 ++ .../item/{ => tool}/HeavyHalberdItem.java | 137 +- .../anvilcraft/item/tool/MultitoolItem.java | 547 ++++++ .../anvilcraft/item/tool/MultitoolMode.java | 57 + .../anvilcraft/item/tool/ResonateMode.java | 26 + .../anvilcraft/item/tool/ResonatorItem.java | 488 +++++ .../item/tool/SpectralSlingshotItem.java | 518 ++++++ .../item/tool/amethyst/AmethystAxeItem.java | 10 + .../item/tool/amethyst/AmethystHoeItem.java | 10 + .../tool/amethyst/AmethystPickaxeItem.java | 10 + .../tool/amethyst/AmethystShovelItem.java | 10 + .../item/tool/amethyst/AmethystSwordItem.java | 10 + .../item/tool/amethyst/package-info.java | 4 + .../item/tool/ember/EmberAnvilHammerItem.java | 36 + .../item/tool/ember/EmberMetalAxeItem.java | 12 + .../ember/EmberMetalHeavyHalberdItem.java | 27 + .../item/tool/ember/EmberMetalHoeItem.java | 12 + .../tool/ember/EmberMetalPickaxeItem.java | 17 + .../tool/ember/EmberMetalResonatorItem.java | 17 + .../item/tool/ember/EmberMetalShovelItem.java | 17 + .../item/tool/ember/EmberMetalSwordItem.java | 16 + .../item/tool/ember/package-info.java | 4 + .../item/tool/frost/FrostMetalAxeItem.java | 12 + .../frost/FrostMetalHeavyHalberdItem.java | 27 + .../item/tool/frost/FrostMetalHoeItem.java | 12 + .../tool/frost/FrostMetalPickaxeItem.java | 12 + .../tool/frost/FrostMetalResonatorItem.java | 12 + .../item/tool/frost/FrostMetalShovelItem.java | 17 + .../item/tool/frost/FrostMetalSwordItem.java | 15 + .../item/tool/frost/package-info.java | 4 + .../anvilcraft/item/tool/package-info.java | 4 + .../item/tool/royal/RoyalAnvilHammerItem.java | 31 + .../item/tool/royal/RoyalSteelAxeItem.java | 10 + .../item/tool/royal/RoyalSteelHoeItem.java | 10 + .../tool/royal/RoyalSteelPickaxeItem.java | 10 + .../item/tool/royal/RoyalSteelShovelItem.java | 10 + .../item/tool/royal/RoyalSteelSwordItem.java | 10 + .../item/tool/royal/package-info.java | 4 + .../TranscendenceAnvilHammerItem.java | 39 + .../TranscendenceHeavyHalberdItem.java | 46 + .../TranscendenceResonatorItem.java | 31 + .../item/tool/trascendence/package-info.java | 4 + .../anvilcraft/item/utility/CrabClawItem.java | 56 + .../anvilcraft/item/utility/DiskItem.java | 137 ++ .../utility/EnergyWeaponPlatformItem.java | 32 + .../anvilcraft/item/utility/FilterItem.java | 81 + .../item/{ => utility}/GeodeItem.java | 20 +- .../item/utility/GuideBookItem.java | 55 + .../item/{ => utility}/IonoCraftItem.java | 18 +- .../anvilcraft/item/utility/MagnetItem.java | 38 + .../anvilcraft/item/utility/PillBoxItem.java | 132 ++ .../item/utility/SeedsPackItem.java | 48 + .../item/utility/StructureToolItem.java | 166 ++ .../anvilcraft/item/utility/package-info.java | 4 + .../item/weapon/AnvilRailgunItem.java | 5 +- .../weapon/SpectralWeaponLauncherItem.java | 49 +- .../anvilcraft/item/weapon/package-info.java | 7 +- .../loot/conditions/MatchDataComponent.java | 47 +- .../loot/conditions/package-info.java | 7 +- .../loot/functions/CurseLootItemFunction.java | 6 +- .../loot/functions/package-info.java | 7 +- .../modifiers/DisintegrationLootModifier.java | 10 +- .../loot/modifiers/SmeltingLootModifier.java | 20 +- .../loot/modifiers/package-info.java | 7 +- .../anvilcraft/mixin/AnvilBlockMixin.java | 24 +- .../mixin/AvoidEntityGoalMixin.java | 22 +- .../anvilcraft/mixin/BeaconMenuMixin.java | 18 +- .../anvilcraft/mixin/BlockBehaviourMixin.java | 7 +- .../dubhe/anvilcraft/mixin/BlockMixin.java | 90 +- .../mixin/BucketResourceHandlerMixin.java | 25 + .../mixin/CandleCakeBlockMixin.java | 14 +- .../mixin/CauldronFluidContentMixin.java | 25 + .../anvilcraft/mixin/ClientLevelMixin.java | 14 +- .../mixin/ClientPacketListenerMixin.java | 2 +- .../mixin/ComparatorBlockEntityMixin.java | 11 +- .../anvilcraft/mixin/CraftingMenuMixin.java | 2 +- .../DefaultDispenseItemBehaviorMixin.java | 39 +- .../DispenseItemEmptyBottleBehaviorMixin.java | 6 +- .../DispenseItemEmptyBucketBehaviorMixin.java | 11 +- .../DispenseItemWaterBottleBehaviorMixin.java | 31 +- .../anvilcraft/mixin/DispenserBlockMixin.java | 7 +- .../mixin/EnchantmentHelperMixin.java | 12 +- .../mixin/EnchantmentPredicateMixin.java | 6 +- .../dubhe/anvilcraft/mixin/EntityMixin.java | 107 +- .../mixin/EntityTypeBuilderMixin.java | 96 - .../anvilcraft/mixin/ExplosionMixin.java | 147 -- .../mixin/FallingBlockEntityMixin.java | 73 +- .../anvilcraft/mixin/FallingBlockMixin.java | 10 +- .../mixin/FlyingHitEntityMixin.java | 17 +- .../anvilcraft/mixin/GameRendererMixin.java | 42 - .../mixin/GuiGraphicsExtractorMixin.java | 53 + .../anvilcraft/mixin/GuiGraphicsMixin.java | 61 - .../mixin/HolderReferenceMixin.java | 24 +- .../anvilcraft/mixin/HopperBlockMixin.java | 7 +- .../mixin/IdDispatchCodecMixin.java | 4 +- .../anvilcraft/mixin/InventoryMixin.java | 5 +- .../anvilcraft/mixin/ItemEntityMixin.java | 186 +- .../mixin/ItemFrameRendererMixin.java | 50 - .../mixin/ItemInHandRendererMixin.java | 63 +- .../dev/dubhe/anvilcraft/mixin/ItemMixin.java | 10 +- .../anvilcraft/mixin/ItemOverridesMixin.java | 47 - .../anvilcraft/mixin/ItemStackMixin.java | 82 - .../anvilcraft/mixin/ItemSubmitMixin.java | 22 + .../anvilcraft/mixin/LevelChunkMixin.java | 90 +- .../anvilcraft/mixin/LevelRendererMixin.java | 167 -- .../anvilcraft/mixin/LightningBoltMixin.java | 1 - .../anvilcraft/mixin/LivingEntityMixin.java | 187 +- .../mixin/MinecraftClientMixin.java | 20 - .../anvilcraft/mixin/MouseHandlerMixin.java | 16 +- .../NearestAttackableTargetGoalMixin.java | 16 +- .../anvilcraft/mixin/PhantomGoalMixin.java | 11 +- .../dev/dubhe/anvilcraft/mixin/PigMixin.java | 46 +- .../mixin/PistonBaseBlockMixin.java | 2 +- .../mixin/PistonMovingBlockEntityMixin.java | 24 +- .../mixin/PistonStructureResolverMixin.java | 26 +- .../mixin/PlayerHitEntityMixin.java | 10 +- .../dubhe/anvilcraft/mixin/PlayerMixin.java | 47 +- .../anvilcraft/mixin/RecipeManagerMixin.java | 77 +- .../mixin/SectionCompilerMixin.java | 185 +- .../mixin/ServerExplosionMixin.java | 147 ++ .../mixin/ServerGamePacketListenerMixin.java | 11 +- .../anvilcraft/mixin/ServerLevelMixin.java | 8 +- .../anvilcraft/mixin/ServerPlayerMixin.java | 43 +- .../anvilcraft/mixin/SoundEngineMixin.java | 11 +- .../dubhe/anvilcraft/mixin/StriderMixin.java | 38 +- .../mixin/SubmitNodeCollectionMixin.java | 51 + .../dubhe/anvilcraft/mixin/TntBlockMixin.java | 21 +- .../mixin/VaultBlockEntityServerMixin.java | 6 +- .../mixin/VibrationSystemUserMixin.java | 2 +- .../dubhe/anvilcraft/mixin/VillagerMixin.java | 13 +- .../anvilcraft/mixin/ZombieVillagerMixin.java | 18 +- .../mixin/accessor/AbstractArrowAccessor.java | 38 + .../mixin/accessor/BaseSpawnerAccessor.java | 2 +- .../accessor/FluidStateModelSetAccessor.java | 18 + .../ICacheInputOutputImplAccessor.java | 19 + .../mixin/accessor/LevelRendererAccessor.java | 12 + .../StacksResourceHandlerAccessor.java | 14 + .../accessor/TargetingConditionsAccessor.java | 8 +- .../mixin/accessor/VillagerAccessor.java | 2 +- .../mixin/accessor/package-info.java | 7 +- .../compat/CerbonNewBeaconMenuMixin.java | 2 +- .../EmbChunkBuilderMeshingTaskMixin.java | 54 - .../SodiumChunkBuilderMeshingTaskMixin.java | 111 +- .../anvilcraft/mixin/compat/package-info.java | 7 +- .../mixin/invoker/BlockBehaviourInvoker.java | 3 +- .../mixin/invoker/package-info.java | 7 +- .../dubhe/anvilcraft/mixin/package-info.java | 7 +- .../mixin/piglin/AbstractPiglinMixin.java | 30 +- .../anvilcraft/mixin/piglin/PiglinMixin.java | 4 +- .../anvilcraft/mixin/piglin/package-info.java | 7 +- .../mixin/plugin/AnvilCraftMixinPlugin.java | 8 +- .../anvilcraft/mixin/plugin/package-info.java | 7 +- .../JeiServerCommandUtilMixin.java | 9 +- .../mixin/poachfixers/package-info.java | 4 + .../mixin/portal/EndGatewayBlockMixin.java | 2 +- .../mixin/portal/EndPortalBlockMixin.java | 2 +- .../mixin/portal/NetherPortalBlockMixin.java | 2 +- .../anvilcraft/mixin/portal/package-info.java | 4 + .../providence/ApplyBonusCountMixin.java | 14 +- .../mixin/providence/DamageEntityMixin.java | 18 +- .../EnchantedCountIncreaseFunctionMixin.java | 6 +- .../mixin/providence/package-info.java | 7 +- .../network/DragonRodDevourPacket.java | 4 +- .../anvilcraft/network/HammerUsePacket.java | 4 +- .../network/HeliostatsIrradiationPacket.java | 2 +- .../network/InspectionStateChangedPacket.java | 6 +- .../anvilcraft/network/LaserEmitPacket.java | 2 +- .../network/MachineCycleFilterModePacket.java | 3 +- .../network/MutedSoundSyncPacket.java | 6 +- .../network/PowerGridSyncPacket.java | 2 +- .../network/PulseGeneratorUpdatePacket.java | 8 - .../network/RecipeCacheSyncPacket.java | 40 - .../anvilcraft/network/RecipesSyncPacket.java | 51 + .../network/SilencerAddMutedPacket.java | 6 +- .../network/SilencerRemoveMutedPacket.java | 6 +- .../network/SilencerSyncPacket.java | 6 +- .../network/SwitchMultitoolModePacket.java | 2 +- .../network/SwitchResonateModePacket.java | 5 +- .../network/TeslaFilterSyncPacket.java | 2 +- .../anvilcraft/network/UsePillBoxPacket.java | 6 +- .../network/multiple/MultiphasePackets.java | 2 +- .../network/multiple/package-info.java | 6 +- .../anvilcraft/network/package-info.java | 7 +- .../network/split/PacketCollector.java | 9 +- .../network/split/PacketSplitter.java | 6 +- .../network/split/package-info.java | 7 +- .../dev/dubhe/anvilcraft/package-info.java | 7 +- .../anvilcraft/recipe/CanningFoodRecipe.java | 48 +- .../recipe/ChargerChargingRecipe.java | 168 +- .../recipe/EnergyWeaponMakeRecipe.java | 127 +- .../recipe/JewelCraftingRecipe.java | 227 ++- .../dubhe/anvilcraft/recipe/PillRecipe.java | 33 +- .../recipe/PortalConversionRecipe.java | 76 +- .../recipe/anvil/MassInjectRecipe.java | 177 +- .../anvil/StampingUniqueItemsRecipe.java | 232 --- .../anvil/builder/AbstractRecipeBuilder.java | 60 +- .../builder/ExtendInWorldRecipeBuilder.java | 16 +- .../recipe/anvil/builder/package-info.java | 7 +- .../anvil/cache/JewelCraftingRecipeCache.java | 82 - .../recipe/anvil/cache/RecipeCaches.java | 79 - .../recipe/anvil/cache/package-info.java | 7 - .../collision/AnvilCollisionCraftRecipe.java | 201 +- .../anvil/collision/BlockTransform.java | 18 +- .../recipe/anvil/collision/package-info.java | 7 +- .../recipe/anvil/input/ItemProcessInput.java | 6 +- .../recipe/anvil/input/package-info.java | 7 +- .../recipe/anvil/outcome/ProduceHeat.java | 4 +- .../anvil/outcome/RoyalPreferenceOutcome.java | 10 +- .../recipe/anvil/outcome/package-info.java | 7 +- .../anvilcraft/recipe/anvil/package-info.java | 7 +- .../anvil/predicate/block/HasAnvil.java | 31 +- .../anvil/predicate/block/HasCauldron.java | 323 ++-- .../anvil/predicate/block/package-info.java | 7 +- .../anvil/predicate/item/HasDiffItems.java | 173 ++ .../anvil/predicate/item/package-info.java | 4 + .../recipe/anvil/util/Distance.java | 35 +- .../recipe/anvil/util/WrapUtils.java | 46 +- .../recipe/anvil/util/package-info.java | 7 +- .../anvil/wrap/AbstractProcessRecipe.java | 193 +- .../recipe/anvil/wrap/BaseStampingRecipe.java | 12 + .../anvil/wrap/BlockCompressRecipe.java | 96 +- .../recipe/anvil/wrap/BlockCrushRecipe.java | 92 +- .../recipe/anvil/wrap/BlockSmearRecipe.java | 94 +- .../recipe/anvil/wrap/BoilingRecipe.java | 22 +- .../recipe/anvil/wrap/BulgingRecipe.java | 94 +- .../recipe/anvil/wrap/CookingRecipe.java | 22 +- .../recipe/anvil/wrap/ItemCompressRecipe.java | 21 +- .../recipe/anvil/wrap/ItemCrushRecipe.java | 22 +- .../recipe/anvil/wrap/ItemInjectRecipe.java | 106 +- .../recipe/anvil/wrap/MeshRecipe.java | 21 +- .../anvil/wrap/NeutronIrradiationRecipe.java | 79 +- .../recipe/anvil/wrap/SqueezingRecipe.java | 145 +- .../recipe/anvil/wrap/StampingDiffRecipe.java | 98 + .../recipe/anvil/wrap/StampingRecipe.java | 24 +- .../recipe/anvil/wrap/SuperHeatingRecipe.java | 96 +- .../recipe/anvil/wrap/TimeWarpRecipe.java | 130 +- .../recipe/anvil/wrap/UnpackRecipe.java | 21 +- .../recipe/anvil/wrap/VanillaRecipesWrap.java | 390 ++-- .../recipe/anvil/wrap/package-info.java | 7 +- .../recipe/component/HasCauldronSimple.java | 84 +- .../recipe/display/WithAnyPotionsExcept.java | 67 + .../recipe/display/package-info.java | 4 + .../recipe/frost/DeformationRecipe.java | 67 +- .../recipe/frost/IFrostSmithingRecipe.java | 91 +- .../recipe/frost/PermutationRecipe.java | 67 +- .../anvilcraft/recipe/frost/package-info.java | 7 +- .../recipe/generate/BaseGeneratingCache.java | 14 +- .../JewelCraftingRecipeGeneratingCache.java | 71 +- .../generate/MeshRecipeGeneratingCache.java | 18 +- .../recipe/generate/package-info.java | 7 +- .../mineral/MineralFountainChanceRecipe.java | 141 +- .../recipe/mineral/MineralFountainRecipe.java | 135 +- .../recipe/mineral/package-info.java | 7 +- .../recipe/multiblock/BlockPattern.java | 26 +- .../multiblock/BlockPredicateWithState.java | 19 +- .../recipe/multiblock/MultiblockBuilder.java | 31 +- .../MultiblockConversionRecipe.java | 142 +- .../recipe/multiblock/MultiblockInput.java | 4 +- .../recipe/multiblock/MultiblockRecipe.java | 110 +- .../recipe/multiblock/package-info.java | 7 +- .../BaseMultipleToOneSmithingRecipe.java | 113 +- .../multiple/EightToOneSmithingRecipe.java | 17 +- .../multiple/FourToOneSmithingRecipe.java | 17 +- .../multiple/TwoToOneSmithingRecipe.java | 17 +- .../recipe/multiple/package-info.java | 7 +- .../dubhe/anvilcraft/recipe/package-info.java | 7 +- .../recipe/sync/MutableRecipeMap.java | 140 ++ .../anvilcraft/recipe/sync/RecipesRecord.java | 46 + .../recipe/transform/MobTransformRecipe.java | 129 +- .../transform/MobTransformWithItemRecipe.java | 156 +- .../transform/NumericTagValuePredicate.java | 10 +- .../recipe/transform/TagModification.java | 22 +- .../recipe/transform/TransformOptions.java | 8 +- .../transform/TransformRecipeBuilder.java | 39 +- .../TransformWithItemRecipeBuilder.java | 61 +- .../recipe/transform/package-info.java | 7 +- .../anvilcraft/saved/BetterSavedData.java | 31 +- .../saved/datafixers/DataFixers.java | 8 +- .../saved/multiphase/Multiphase.java | 19 +- .../saved/multiphase/Multiphases.java | 78 +- .../saved/multiphase/package-info.java | 7 +- .../dubhe/anvilcraft/saved/package-info.java | 7 +- .../anvilcraft/util/AccelerateManager.java | 16 +- .../anvilcraft/util/BlockHighlightUtil.java | 94 +- .../dubhe/anvilcraft/util/BlockStateUtil.java | 20 +- .../util/BreadthFirstTraversalPos.java | 2 +- .../dubhe/anvilcraft/util/BreakBlockUtil.java | 4 +- .../dubhe/anvilcraft/util/CauldronUtil.java | 12 +- .../dev/dubhe/anvilcraft/util/CodecUtil.java | 19 + .../dev/dubhe/anvilcraft/util/ColorUtil.java | 38 +- .../dubhe/anvilcraft/util/CommandUtil.java | 4 +- .../dev/dubhe/anvilcraft/util/CompatUtil.java | 18 + .../dev/dubhe/anvilcraft/util/DangerUtil.java | 30 - .../dubhe/anvilcraft/util/DataGenUtil.java | 156 -- .../anvilcraft/util/DistanceComparator.java | 2 +- .../anvilcraft/util/EnchantmentData.java | 2 +- .../dev/dubhe/anvilcraft/util/EntityUtil.java | 2 +- .../anvilcraft/util/FullBrightLevel.java | 73 - .../anvilcraft/util/FullBrightLevelProxy.java | 24 - .../dubhe/anvilcraft/util/GravityManager.java | 57 +- .../anvilcraft/util/ItemResourceHelper.java | 38 + .../dev/dubhe/anvilcraft/util/LevelLike.java | 138 +- .../util/LightningPathGenerator.java | 2 +- .../dev/dubhe/anvilcraft/util/MagnetUtil.java | 35 +- .../util/ModClientFluidTypeExtensionImpl.java | 53 +- .../anvilcraft/util/ModEnchantmentHelper.java | 4 +- .../anvilcraft/util/ModInteractionMap.java | 440 +++-- .../anvilcraft/util/MultiPartBlockUtil.java | 7 +- .../util/PacketDistributingHelper.java | 16 + .../dev/dubhe/anvilcraft/util/PlayerUtil.java | 8 +- .../dev/dubhe/anvilcraft/util/RecipeUtil.java | 114 +- .../anvilcraft/util/SegmentedActuator.java | 4 +- .../dev/dubhe/anvilcraft/util/TagUtil.java | 28 +- .../anvilcraft/util/ThreadFactoryImpl.java | 8 +- .../dubhe/anvilcraft/util/TooltipUtil.java | 8 +- .../dubhe/anvilcraft/util/TriggerUtil.java | 46 +- .../java/dev/dubhe/anvilcraft/util/Util.java | 12 + .../util/VertexConsumerWithPose.java | 32 +- .../util/VirtualThreadFactoryImpl.java | 2 +- .../util/WatchableCyclingValue.java | 36 +- .../util/WatchablePropertyDelegate.java | 4 +- .../util/anvil/AnvilMenuResult.java | 31 +- .../anvilcraft/util/anvil/package-info.java | 4 + .../dubhe/anvilcraft/util/dummy/DummyCat.java | 9 +- .../anvilcraft/util/dummy/DummyWolf.java | 9 +- .../anvilcraft/util/dummy/package-info.java | 7 +- .../anvilcraft/util/function/Consumer4.java | 8 - .../util/function/SafePredicate.java | 116 -- .../anvilcraft/util/function/TriFunction.java | 13 - .../util/function/package-info.java | 7 - .../mixin/ExtensibleBlockEntityEntry.java | 22 + .../util/mixin/ModifiedSelector.java | 23 + .../anvilcraft/util/mixin/package-info.java | 7 +- .../util/mixins/minecraft/MMItemStack.java | 10 - .../dubhe/anvilcraft/util/package-info.java | 7 +- .../util/recover/RecoverStation.java | 6 +- .../util/registrater/DataGenUtil.java | 738 ++++++++ .../util/registrater/ModelProviderUtil.java | 64 +- .../registrater/PropertiesProviderUtil.java | 2 +- .../util/registrater/package-info.java | 7 +- .../resources/META-INF/accesstransformer.cfg | 29 +- src/main/resources/anvilcraft.mixins.json | 24 +- .../assets/anvilcraft/atlases/laser.json | 9 + .../anvilcraft/blockstates/fire_cauldron.json | 68 - .../anvilcraft/blockstates/oil_cauldron.json | 78 +- .../equipment/ionocraft_backpack.json | 10 + .../assets/anvilcraft/lang/de_de.json | 132 +- .../assets/anvilcraft/lang/es_es.json | 132 +- .../assets/anvilcraft/lang/fr_fr.json | 132 +- .../assets/anvilcraft/lang/ja_jp.json | 132 +- .../assets/anvilcraft/lang/ko_kr.json | 132 +- .../resources/assets/anvilcraft/lang/lzh.json | 132 +- .../assets/anvilcraft/lang/ru_ru.json | 132 +- .../assets/anvilcraft/lang/zh_cn.json | 132 +- .../assets/anvilcraft/lang/zh_hk.json | 132 +- .../assets/anvilcraft/lang/zh_meme.json | 132 +- .../assets/anvilcraft/lang/zh_tw.json | 132 +- .../block/advanced_comparator_indicator.json | 27 +- .../models/block/creative_generator_cube.json | 5 +- .../anvilcraft/models/block/fish_tank.json | 54 +- .../anvilcraft/models/block/heliostats.json | 5 +- ...ron_fire1.json => oil_cauldron_fire1.json} | 0 ...ron_fire2.json => oil_cauldron_fire2.json} | 0 ...ron_fire3.json => oil_cauldron_fire3.json} | 0 ...ron_fire4.json => oil_cauldron_fire4.json} | 0 .../item/ember_metal_heavy_halberd.json | 5 +- .../models/item/ember_metal_resonator.json | 8 +- .../item/frost_metal_heavy_halberd.json | 7 +- .../models/item/frost_metal_resonator.json | 30 +- .../anvilcraft/models/item/multitool.json | 572 +++++- .../anvilcraft/models/item/multitool_all.json | 517 ------ .../models/item/remote_transmission_pole.json | 5 +- .../models/item/spectral_weapon_launcher.json | 10 +- .../item/transcendence_heavy_halberd.json | 7 +- .../models/item/transcendence_resonator.json | 30 +- .../anvilcraft/particles/white_smoke.json | 12 + .../assets/anvilcraft/shaders/core/blit.fsh | 11 - .../assets/anvilcraft/shaders/core/blit.json | 51 - .../assets/anvilcraft/shaders/core/blit.vsh | 15 - .../shaders/core/rendertype_laser.fsh | 22 - .../shaders/core/rendertype_laser.json | 18 - .../shaders/core/rendertype_laser.vsh | 30 - .../shaders/core/rendertype_lightning.fsh | 15 +- .../shaders/core/rendertype_lightning.json | 19 - .../shaders/core/rendertype_lightning.vsh | 28 - ...rendertype_translucent_colored_overlay.fsh | 28 +- ...endertype_translucent_colored_overlay.json | 127 -- .../assets/anvilcraft/shaders/core/ring.fsh | 22 - .../assets/anvilcraft/shaders/core/ring.json | 44 - .../anvilcraft/shaders/core/selection.fsh | 23 - .../anvilcraft/shaders/core/selection.json | 45 - .../assets/anvilcraft/shaders/post/bloom.json | 86 - .../anvilcraft/shaders/post/line_bloom.json | 90 - .../shaders/program/apply_bloom.fsh | 19 - .../shaders/program/apply_bloom.json | 72 - .../anvilcraft/shaders/program/blit.fsh | 11 - .../anvilcraft/shaders/program/blit.json | 51 - .../anvilcraft/shaders/program/blur.fsh | 28 - .../anvilcraft/shaders/program/blur.json | 19 - .../anvilcraft/shaders/program/blur.vsh | 18 - .../block/advanced_comparator_indicator.png | Bin 0 -> 150 bytes .../block/advanced_comparator_side.png | Bin 257 -> 253 bytes ...lack.png => black_reinforced_concrete.png} | Bin ...g => black_reinforced_concrete_bottom.png} | Bin ....png => black_reinforced_concrete_top.png} | Bin ...png => black_reinforced_concrete_wall.png} | Bin ..._blue.png => blue_reinforced_concrete.png} | Bin ...ng => blue_reinforced_concrete_bottom.png} | Bin ...p.png => blue_reinforced_concrete_top.png} | Bin ....png => blue_reinforced_concrete_wall.png} | Bin ...rown.png => brown_reinforced_concrete.png} | Bin ...g => brown_reinforced_concrete_bottom.png} | Bin ....png => brown_reinforced_concrete_top.png} | Bin ...png => brown_reinforced_concrete_wall.png} | Bin ..._cyan.png => cyan_reinforced_concrete.png} | Bin ...ng => cyan_reinforced_concrete_bottom.png} | Bin ...p.png => cyan_reinforced_concrete_top.png} | Bin ....png => cyan_reinforced_concrete_wall.png} | Bin ..._gray.png => gray_reinforced_concrete.png} | Bin ...ng => gray_reinforced_concrete_bottom.png} | Bin ...p.png => gray_reinforced_concrete_top.png} | Bin ....png => gray_reinforced_concrete_wall.png} | Bin ...reen.png => green_reinforced_concrete.png} | Bin ...g => green_reinforced_concrete_bottom.png} | Bin ....png => green_reinforced_concrete_top.png} | Bin ...png => green_reinforced_concrete_wall.png} | Bin ...png => light_blue_reinforced_concrete.png} | Bin ...light_blue_reinforced_concrete_bottom.png} | Bin ...=> light_blue_reinforced_concrete_top.png} | Bin ...> light_blue_reinforced_concrete_wall.png} | Bin ...png => light_gray_reinforced_concrete.png} | Bin ...light_gray_reinforced_concrete_bottom.png} | Bin ...=> light_gray_reinforced_concrete_top.png} | Bin ...> light_gray_reinforced_concrete_wall.png} | Bin ..._lime.png => lime_reinforced_concrete.png} | Bin ...ng => lime_reinforced_concrete_bottom.png} | Bin ...p.png => lime_reinforced_concrete_top.png} | Bin ....png => lime_reinforced_concrete_wall.png} | Bin ...ta.png => magenta_reinforced_concrete.png} | Bin ...=> magenta_reinforced_concrete_bottom.png} | Bin ...ng => magenta_reinforced_concrete_top.png} | Bin ...g => magenta_reinforced_concrete_wall.png} | Bin ...nge.png => orange_reinforced_concrete.png} | Bin ... => orange_reinforced_concrete_bottom.png} | Bin ...png => orange_reinforced_concrete_top.png} | Bin ...ng => orange_reinforced_concrete_wall.png} | Bin ..._pink.png => pink_reinforced_concrete.png} | Bin ...ng => pink_reinforced_concrete_bottom.png} | Bin ...p.png => pink_reinforced_concrete_top.png} | Bin ....png => pink_reinforced_concrete_wall.png} | Bin ...ple.png => purple_reinforced_concrete.png} | Bin ... => purple_reinforced_concrete_bottom.png} | Bin ...png => purple_reinforced_concrete_top.png} | Bin ...ng => purple_reinforced_concrete_wall.png} | Bin ...te_red.png => red_reinforced_concrete.png} | Bin ...png => red_reinforced_concrete_bottom.png} | Bin ...op.png => red_reinforced_concrete_top.png} | Bin ...l.png => red_reinforced_concrete_wall.png} | Bin ...hite.png => white_reinforced_concrete.png} | Bin ...g => white_reinforced_concrete_bottom.png} | Bin ....png => white_reinforced_concrete_top.png} | Bin ...png => white_reinforced_concrete_wall.png} | Bin ...low.png => yellow_reinforced_concrete.png} | Bin ... => yellow_reinforced_concrete_bottom.png} | Bin ...png => yellow_reinforced_concrete_top.png} | Bin ...ng => yellow_reinforced_concrete_wall.png} | Bin .../multiple_to_one_smithing.png} | Bin .../{block/laser.png => laser/beam.png} | Bin .../anvilcraft/textures/laser/solid.png | Bin 0 -> 2710 bytes src/main/resources/interface_injections.json | 8 +- style.xml | 18 +- 4414 files changed, 58906 insertions(+), 60244 deletions(-) create mode 100644 .codebuddy/plans/replace-blockstate-calls_27fd1c90.md create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/abnormal_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/acceleration_ring.json create mode 100644 src/generated/resources/assets/anvilcraft/items/activator_sliding_rail.json create mode 100644 src/generated/resources/assets/anvilcraft/items/active_silencer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/advanced_comparator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amber.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amber_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amethyst_axe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amethyst_hoe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amethyst_pickaxe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amethyst_shovel.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amethyst_sword.json create mode 100644 src/generated/resources/assets/anvilcraft/items/amulet_box.json create mode 100644 src/generated/resources/assets/anvilcraft/items/anvil_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/anvil_hammer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/anvil_railgun.json create mode 100644 src/generated/resources/assets/anvilcraft/items/arrow.json create mode 100644 src/generated/resources/assets/anvilcraft/items/batch_crafter.json create mode 100644 src/generated/resources/assets/anvilcraft/items/batch_cutter.json create mode 100644 src/generated/resources/assets/anvilcraft/items/beef_mushroom_stew.json create mode 100644 src/generated/resources/assets/anvilcraft/items/berry_cake_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/berry_cream_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_chocolate_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_chocolate_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_chocolate_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_hole.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/block_comparator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/block_devourer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/block_placer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/blue_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brass_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brass_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brass_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brass_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/bronze_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/bronze_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/bronze_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/bronze_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brown_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cake_base_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cake_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/canned_food.json create mode 100644 src/generated/resources/assets/anvilcraft/items/capacitor.json create mode 100644 src/generated/resources/assets/anvilcraft/items/capacitor_empty.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cat_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_amplifier.json create mode 100644 src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_fluid_interface.json create mode 100644 src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_laser_interface.json create mode 100644 src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_logistics_interface.json create mode 100644 src/generated/resources/assets/anvilcraft/items/charge_collector.json create mode 100644 src/generated/resources/assets/anvilcraft/items/charged_neutronium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/charger.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate_black.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate_cake_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate_cream_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chocolate_white.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chromatic_stone.json create mode 100644 src/generated/resources/assets/anvilcraft/items/chute.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cinerite.json create mode 100644 src/generated/resources/assets/anvilcraft/items/circuit_board.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cocoa_butter.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cocoa_liquor.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cocoa_powder.json create mode 100644 src/generated/resources/assets/anvilcraft/items/comrade_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/confined_energy_anvilon.json create mode 100644 src/generated/resources/assets/anvilcraft/items/confined_mass_anvilon.json create mode 100644 src/generated/resources/assets/anvilcraft/items/confined_neutronium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/confined_space_anvilon.json create mode 100644 src/generated/resources/assets/anvilcraft/items/confined_time_anvilon.json create mode 100644 src/generated/resources/assets/anvilcraft/items/confinement_chamber.json create mode 100644 src/generated/resources/assets/anvilcraft/items/controllable_sand.json create mode 100644 src/generated/resources/assets/anvilcraft/items/copper_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/copper_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/corrupted_beacon.json create mode 100644 src/generated/resources/assets/anvilcraft/items/crab_claw.json create mode 100644 src/generated/resources/assets/anvilcraft/items/crab_trap.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cream.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cream_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/creamy_bread_roll.json create mode 100644 src/generated/resources/assets/anvilcraft/items/creative_generator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/crushing_table.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cursed_gold_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cursed_gold_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cursed_gold_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_ember_metal_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_ember_metal_pillar.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_ember_metal_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_ember_metal_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_flint_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_flint_pillar.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_flint_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_flint_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_frost_metal_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_frost_metal_pillar.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_frost_metal_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_frost_metal_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_royal_steel_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_royal_steel_pillar.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_royal_steel_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cut_royal_steel_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cyan_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deepslate_lead_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deepslate_silver_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deepslate_tin_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deepslate_titanium_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deepslate_tungsten_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deepslate_uranium_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deepslate_zinc_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deflection_ring.json create mode 100644 src/generated/resources/assets/anvilcraft/items/deformation_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/detector_sliding_rail.json create mode 100644 src/generated/resources/assets/anvilcraft/items/discharger.json create mode 100644 src/generated/resources/assets/anvilcraft/items/disk.json create mode 100644 src/generated/resources/assets/anvilcraft/items/dog_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/dough.json create mode 100644 src/generated/resources/assets/anvilcraft/items/dragon_rod.json create mode 100644 src/generated/resources/assets/anvilcraft/items/earth_core_shard.json create mode 100644 src/generated/resources/assets/anvilcraft/items/earth_core_shard_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/earth_core_shard_ore.json create mode 100644 src/generated/resources/assets/anvilcraft/items/eight_to_one_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_anvil_hammer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_dragon_rod.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_glass.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_grindstone.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_axe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_heavy_halberd.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_hoe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_pickaxe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_resonator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_shovel.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_sword.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_metal_upgrade_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ember_smithing_table.json create mode 100644 src/generated/resources/assets/anvilcraft/items/emerald_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/end_dust.json create mode 100644 src/generated/resources/assets/anvilcraft/items/energy_weapon_platform.json create mode 100644 src/generated/resources/assets/anvilcraft/items/exp_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/exp_gem.json create mode 100644 src/generated/resources/assets/anvilcraft/items/exp_gem_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/exposed_copper_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/feather_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ferrite_core_magnet_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/filter.json create mode 100644 src/generated/resources/assets/anvilcraft/items/fish_tank.json create mode 100644 src/generated/resources/assets/anvilcraft/items/flint_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/flour.json create mode 100644 src/generated/resources/assets/anvilcraft/items/fluid_tank.json create mode 100644 src/generated/resources/assets/anvilcraft/items/four_to_one_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_glass.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_grindstone.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_axe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_heavy_halberd.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_hoe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_pickaxe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_resonator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_shovel.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_sword.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_metal_upgrade_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/frost_smithing_table.json create mode 100644 src/generated/resources/assets/anvilcraft/items/gem_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/geode.json create mode 100644 src/generated/resources/assets/anvilcraft/items/giant_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/items/glowing_netherite_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/glowing_tungsten_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/gray_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/green_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/guide_book.json create mode 100644 src/generated/resources/assets/anvilcraft/items/gunpowder_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/hardend_resin.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heat_collector.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heated_netherite_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heated_tungsten_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heater.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_halberd_core.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_iron_beam.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_iron_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_iron_column.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_iron_door.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_iron_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_iron_trapdoor.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heavy_iron_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/heliostats.json create mode 100644 src/generated/resources/assets/anvilcraft/items/hollow_magnet_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/impact_pile.json create mode 100644 src/generated/resources/assets/anvilcraft/items/incandescent_netherite_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/incandescent_tungsten_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/induction_light.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ionocraft.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ionocraft_backpack.json create mode 100644 src/generated/resources/assets/anvilcraft/items/item_collector.json create mode 100644 src/generated/resources/assets/anvilcraft/items/item_detector.json create mode 100644 src/generated/resources/assets/anvilcraft/items/jewelcrafting_table.json create mode 100644 src/generated/resources/assets/anvilcraft/items/large_cake.json create mode 100644 src/generated/resources/assets/anvilcraft/items/large_fluid_tank.json create mode 100644 src/generated/resources/assets/anvilcraft/items/laser_receiver.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lead_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lead_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lead_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lead_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/levitation_powder.json create mode 100644 src/generated/resources/assets/anvilcraft/items/levitation_powder_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_blue_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_gray_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lime_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lime_powder.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/load_monitor.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magenta_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magnet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magnet_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magnet_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magnetic_chute.json create mode 100644 src/generated/resources/assets/anvilcraft/items/magnetoelectric_core.json create mode 100644 src/generated/resources/assets/anvilcraft/items/melt_gem_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/menger_sponge.json create mode 100644 src/generated/resources/assets/anvilcraft/items/mineral_fountain.json create mode 100644 src/generated/resources/assets/anvilcraft/items/mob_amber_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/multiphase_matter.json create mode 100644 src/generated/resources/assets/anvilcraft/items/multiphase_matter_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/multiphase_transcendium.json create mode 100644 src/generated/resources/assets/anvilcraft/items/multitool.json create mode 100644 src/generated/resources/assets/anvilcraft/items/nature_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/negative_matter.json create mode 100644 src/generated/resources/assets/anvilcraft/items/negative_matter_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/negative_matter_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/neoforge.json create mode 100644 src/generated/resources/assets/anvilcraft/items/nesting_shulker_box.json create mode 100644 src/generated/resources/assets/anvilcraft/items/nether_dust.json create mode 100644 src/generated/resources/assets/anvilcraft/items/netherite_crystal_nucleus.json create mode 100644 src/generated/resources/assets/anvilcraft/items/neutron_irradiator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/neutronium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/oil_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/orange_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/over_nesting_shulker_box.json create mode 100644 src/generated/resources/assets/anvilcraft/items/overheated_ember_metal_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/overseer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/oxidized_copper_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/permutation_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/piezoelectric_crystal.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pill.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pill_box.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pink_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/plutonium_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/plutonium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/plutonium_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/plutonium_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/polished_flint_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/power_converter_big.json create mode 100644 src/generated/resources/assets/anvilcraft/items/power_converter_middle.json create mode 100644 src/generated/resources/assets/anvilcraft/items/power_converter_small.json create mode 100644 src/generated/resources/assets/anvilcraft/items/powered_sliding_rail.json create mode 100644 src/generated/resources/assets/anvilcraft/items/prismarine_blade.json create mode 100644 src/generated/resources/assets/anvilcraft/items/prismarine_cluster.json create mode 100644 src/generated/resources/assets/anvilcraft/items/processor.json create mode 100644 src/generated/resources/assets/anvilcraft/items/propel_piston.json create mode 100644 src/generated/resources/assets/anvilcraft/items/pulse_generator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/purple_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/quartz_sand.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_lead.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_lead_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_silver.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_silver_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_tin.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_tin_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_titanium.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_titanium_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_tungsten.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_tungsten_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_uranium.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_uranium_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_zinc.json create mode 100644 src/generated/resources/assets/anvilcraft/items/raw_zinc_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/recovery_pearl.json create mode 100644 src/generated/resources/assets/anvilcraft/items/red_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/redhot_netherite_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/redhot_tungsten_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/remote_transmission_pole.json create mode 100644 src/generated/resources/assets/anvilcraft/items/resentful_amber_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/resin.json create mode 100644 src/generated/resources/assets/anvilcraft/items/resin_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/resonator_core.json create mode 100644 src/generated/resources/assets/anvilcraft/items/rotten_flesh_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_anvil_hammer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_dragon_rod.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_grindstone.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_smithing_table.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_axe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_hoe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_pickaxe.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_shovel.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_sword.json create mode 100644 src/generated/resources/assets/anvilcraft/items/royal_steel_upgrade_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ruby.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ruby_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ruby_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ruby_laser.json create mode 100644 src/generated/resources/assets/anvilcraft/items/ruby_prism.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sapphire.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sapphire_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sapphire_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sea_heart_shell.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sea_heart_shell_shard.json create mode 100644 src/generated/resources/assets/anvilcraft/items/seeds_pack.json create mode 100644 src/generated/resources/assets/anvilcraft/items/shulker_container.json create mode 100644 src/generated/resources/assets/anvilcraft/items/silence_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/silver_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/silver_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/silver_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/silver_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/singularity_crystal.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sliding_rail.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sliding_rail_stop.json create mode 100644 src/generated/resources/assets/anvilcraft/items/smooth_royal_steel_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/space_overcompressor.json create mode 100644 src/generated/resources/assets/anvilcraft/items/spectral_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/items/spectral_slingshot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/spectral_weapon_launcher.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sponge_gemmule.json create mode 100644 src/generated/resources/assets/anvilcraft/items/stable_neutronium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/stamping_platform.json create mode 100644 src/generated/resources/assets/anvilcraft/items/structure_tool.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sturdy_deepslate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/sugar_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/supercapacitor.json create mode 100644 src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json create mode 100644 src/generated/resources/assets/anvilcraft/items/supercritical_nesting_shulker_box.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tempering_glass.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tesla_tower.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tin_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tin_can.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tin_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tin_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tin_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/titanium_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/titanium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/titanium_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/titanium_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/topaz.json create mode 100644 src/generated/resources/assets/anvilcraft/items/topaz_amulet.json create mode 100644 src/generated/resources/assets/anvilcraft/items/topaz_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/totem_of_rage.json create mode 100644 src/generated/resources/assets/anvilcraft/items/totem_of_recovery.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendence_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendence_anvil_hammer.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendence_dragon_rod.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendence_heavy_halberd.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendence_resonator.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendium_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendium_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transcendium_upgrade_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transmission_pole.json create mode 100644 src/generated/resources/assets/anvilcraft/items/transparent_crafting_table.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tungsten_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tungsten_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tungsten_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/tungsten_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/two_to_one_smithing_template.json create mode 100644 src/generated/resources/assets/anvilcraft/items/uranium_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/uranium_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/uranium_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/uranium_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/utusan.json create mode 100644 src/generated/resources/assets/anvilcraft/items/void_energy_collector.json create mode 100644 src/generated/resources/assets/anvilcraft/items/void_matter.json create mode 100644 src/generated/resources/assets/anvilcraft/items/void_matter_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/void_stone.json create mode 100644 src/generated/resources/assets/anvilcraft/items/weathered_copper_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_chocolate_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_chocolate_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_chocolate_stairs.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_hole.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/wood_fiber.json create mode 100644 src/generated/resources/assets/anvilcraft/items/yellow_cement_bucket.json create mode 100644 src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_wall.json create mode 100644 src/generated/resources/assets/anvilcraft/items/zinc_block.json create mode 100644 src/generated/resources/assets/anvilcraft/items/zinc_ingot.json create mode 100644 src/generated/resources/assets/anvilcraft/items/zinc_nugget.json create mode 100644 src/generated/resources/assets/anvilcraft/items/zinc_pressure_plate.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/cut_flint_pillar_horizontal.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_black.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_brown.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_cyan.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_green.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_lime.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_magenta.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_orange.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_pink.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_purple.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_red.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_white.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_yellow.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_black.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_brown.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_cyan.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_green.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_lime.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_magenta.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_orange.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_pink.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_purple.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_red.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_white.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_yellow.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab_top.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_inner.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_outer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_post.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side_tall.json rename src/generated/resources/assets/anvilcraft/models/block/{sugar_block1.json => sugar_block_1.json} (100%) rename src/generated/resources/assets/anvilcraft/models/block/{sugar_block2.json => sugar_block_2.json} (100%) rename src/generated/resources/assets/anvilcraft/models/block/{sugar_block3.json => sugar_block_3.json} (100%) create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side_tall.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_bottom.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_inner.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_outer.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_top.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_inventory.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_post.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side.json create mode 100644 src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side_tall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/acceleration_ring.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/activator_sliding_rail.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/active_silencer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/advanced_comparator.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/amber_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/arrow.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/batch_crafter.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/batch_cutter.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/berry_cake_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/berry_cream_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/black_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/black_chocolate_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/black_chocolate_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/black_chocolate_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/black_hole.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/block_comparator.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/block_devourer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/block_placer.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/blue_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/brass_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/brass_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/bronze_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/bronze_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/brown_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cake_base_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cake_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_amplifier.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_fluid_interface.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_laser_interface.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_logistics_interface.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/charge_collector.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/charger.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/chocolate_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/chocolate_cake_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/chocolate_cream_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/chocolate_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/chocolate_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/chromatic_stone.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/chute.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cinerite.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/confined_energy_anvilon.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/confined_mass_anvilon.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/confined_neutronium_ingot.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/confined_space_anvilon.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/confined_time_anvilon.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/confinement_chamber.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/controllable_sand.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/copper_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/corrupted_beacon.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/crab_trap.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cream_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/crushing_table.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cursed_gold_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_pillar.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_flint_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_flint_pillar.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_flint_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_flint_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_pillar.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_pillar.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/cyan_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deepslate_lead_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deepslate_silver_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deepslate_tin_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deepslate_titanium_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deepslate_tungsten_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deepslate_uranium_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deepslate_zinc_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/deflection_ring.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/detector_sliding_rail.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/discharger.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_ore.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ember_anvil.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ember_glass.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ember_grindstone.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ember_metal_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ember_smithing_table.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/end_dust.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/exp_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/exp_gem_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/exposed_copper_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ferrite_core_magnet_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/fish_tank.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/flint_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/fluid_tank.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/frost_anvil.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/frost_glass.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/frost_grindstone.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/frost_metal_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/frost_smithing_table.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/giant_anvil.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/glowing_netherite_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/glowing_tungsten_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/gray_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/green_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/gunpowder_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heat_collector.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heated_netherite_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heated_tungsten_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heater.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heavy_iron_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heavy_iron_column.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heavy_iron_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heavy_iron_trapdoor.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/heavy_iron_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/hollow_magnet_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/impact_pile.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/incandescent_netherite_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/incandescent_tungsten_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/induction_light.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ionocraft_backpack.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/item_collector.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/item_detector.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/jewelcrafting_table.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/large_cake.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/large_fluid_tank.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/laser_receiver.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/lead_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/lead_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/levitation_powder_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/light_blue_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/light_gray_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/lime_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/load_monitor.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/magenta_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/magnet_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/magnetic_chute.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/magnetoelectric_core.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/melt_gem_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/menger_sponge.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/mineral_fountain.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/mob_amber_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/multiphase_matter_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/negative_matter_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/neoforge.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/nesting_shulker_box.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/nether_dust.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/neutron_irradiator.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/oil_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/orange_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/over_nesting_shulker_box.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/overheated_ember_metal_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/oxidized_copper_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/piezoelectric_crystal.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/pink_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/plutonium_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/plutonium_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/polished_flint_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/power_converter_big.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/power_converter_middle.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/power_converter_small.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/powered_sliding_rail.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/propel_piston.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/pulse_generator.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/purple_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/quartz_sand.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/raw_lead_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/raw_silver_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/raw_tin_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/raw_titanium_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/raw_tungsten_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/raw_uranium_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/raw_zinc_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/red_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/redhot_netherite_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/redhot_tungsten_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_wall.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/resentful_amber_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/resin_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/rotten_flesh_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/royal_anvil.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/royal_grindstone.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/royal_smithing_table.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/royal_steel_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ruby_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ruby_laser.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/ruby_prism.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/sapphire_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/shulker_container.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/silver_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/silver_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/singularity_crystal.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/sliding_rail.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/sliding_rail_stop.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/smooth_royal_steel_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/space_overcompressor.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/spectral_anvil.json create mode 100644 src/generated/resources/assets/anvilcraft/models/item/spectral_weapon_launcher_off.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/stamping_platform.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/structure_tool.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/sturdy_deepslate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/sugar_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/supercritical_nesting_shulker_box.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/tempering_glass.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/tesla_tower.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/tin_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/tin_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/titanium_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/titanium_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/topaz_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/transcendence_anvil.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/transcendium_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/transparent_crafting_table.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/tungsten_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/tungsten_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/uranium_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/uranium_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/void_energy_collector.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/void_matter_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/void_stone.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/weathered_copper_pressure_plate.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/white_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/white_chocolate_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/white_chocolate_slab.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/white_chocolate_stairs.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/white_hole.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/yellow_cement_bucket.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/zinc_block.json delete mode 100644 src/generated/resources/assets/anvilcraft/models/item/zinc_pressure_plate.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/bulging/netherite_upgrade_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/cooling/cooling_ember_metal_upgrade_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_iron_chain.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_iron_chain.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_iron_chain.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_iron_chain.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/banner_patterns.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/music_discs.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/trim_templates.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/misc/netherrack.json rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/allay.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/bat.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/cow.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/guardian.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/horse.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/iron_golem.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/pig.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/piglin.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/skeleton.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/villager.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform/zombie.json (100%) rename src/generated/resources/data/anvilcraft/advancement/{recipe => recipes}/mob_transform_with_item/zombie_to_giant_anvil.json (100%) create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/null/neutron_irradation/uranium_block_explosion.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/redstone/empty_propel_piston.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/eight_to_one_smithing_template.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/four_to_one_smithing_template.json create mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/two_to_one_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/eight_to_one_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/four_to_one_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/two_to_one_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_modifiers/disintegration_loot_modifier.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_modifiers/smelting_loot_modifier.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/advancement/root.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/fire_cauldron.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/creeper.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/ender_dragon.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/piglin.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/player.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/skeleton.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/wither_skeleton.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/zombie.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/common.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/jungle.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/ocean.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/river.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/swamp.json delete mode 100644 src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/warm_ocean.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_bars.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chest.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_golem_statue.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_lantern.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_lightning_rod.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/bulging/netherite_upgrade_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/cooling/cooling_ember_metal_upgrade_smithing_template.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_iron_chain.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_iron_chain.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_iron_chain.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_iron_chain.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/jewel_crafting/banner_patterns.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/jewel_crafting/music_discs.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trim_templates.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/netherrack.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/null/neutron_irradation/uranium_block_explosion.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stamping_diff/eight_to_one_smithing_template.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stamping_diff/four_to_one_smithing_template.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stamping_diff/two_to_one_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/eight_to_one_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/four_to_one_smithing_template.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/two_to_one_smithing_template.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_wall.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_slab.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_stair.json delete mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_slab.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_stair.json create mode 100644 src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_wall.json create mode 100644 src/generated/resources/data/anvilcraft/tags/fluid/ignitable.json create mode 100644 src/generated/resources/data/anvilcraft/tags/item/disallow_hand_insert_into_tank.json create mode 100644 src/generated/resources/data/anvilcraft/trade_set/jeweler/level_1.json create mode 100644 src/generated/resources/data/anvilcraft/trade_set/jeweler/level_2.json create mode 100644 src/generated/resources/data/anvilcraft/trade_set/jeweler/level_3.json create mode 100644 src/generated/resources/data/anvilcraft/trade_set/jeweler/level_4.json create mode 100644 src/generated/resources/data/anvilcraft/trade_set/jeweler/level_5.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/amber_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/amethyst_shard_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_amulet_box.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_geode.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_royal_steel_template.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_tinted_glass.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/mob_amber_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/nautilus_shell_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/resentful_amber_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/ruby_block_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/sapphire_block_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/sea_lantern_for_emerald.json create mode 100644 src/generated/resources/data/anvilcraft/villager_trade/jeweler/topaz_block_for_emerald.json create mode 100644 src/generated/resources/data/c/tags/item/amethyst_tool_materials.json create mode 100644 src/generated/resources/data/c/tags/item/ember_metal_tool_materials.json create mode 100644 src/generated/resources/data/c/tags/item/frost_metal_tool_materials.json create mode 100644 src/generated/resources/data/c/tags/item/royal_steel_tool_materials.json create mode 100644 src/generated/resources/data/c/tags/item/transcendium_tool_materials.json delete mode 100644 src/generated/resources/data/minecraft/advancement/recipes/misc/netherrack.json delete mode 100644 src/generated/resources/data/minecraft/advancement/recipes/null/uranium_block_explosion.json delete mode 100644 src/generated/resources/data/minecraft/advancement/recipes/redstone/empty_propel_piston.json delete mode 100644 src/generated/resources/data/minecraft/recipe/empty_propel_piston.json delete mode 100644 src/generated/resources/data/minecraft/recipe/netherrack.json delete mode 100644 src/generated/resources/data/minecraft/recipe/null/uranium_block_explosion.json rename src/generated/resources/data/minecraft/tags/item/enchantable/{sword.json => sweeping.json} (100%) delete mode 100644 src/generated/resources/data/neoforge/data_maps/item/furnace_fuels.json delete mode 100644 src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json delete mode 100644 src/main/java/dev/dubhe/anvilcraft/anvil/ItemStampingBehavior.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/block/IIgnitableCauldron.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/block/entity/IExtensibleBlockEntity.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/fluidtank/CapacityModifiableFluidHandler.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/injection/IItemSubmitExtension.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/injection/entity/ILivingEntityExtension.java rename src/main/java/dev/dubhe/anvilcraft/api/{ => injection}/input/IMouseHandlerExtension.java (83%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/injection/input/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/input/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/item/property/IIntegerComponent.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/itemhandler/HoneyCauldronWrapper.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemHandlerHolder.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemResourceHandlerHolder.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SingleStackResourceHandler.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SolidCauldronExtractor.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/recipe/data/RequiredEntry.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBERenderingPipeline.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderers.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/rendering/CompileResult.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/rendering/FullyBufferedBufferSource.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/rendering/RenderRegion.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/rendering/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/taslatower/package-info.java rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/HasCustomNameFilter.java (91%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/IsBabyFriendlyFilter.java (93%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/IsEntityIdFilter.java (93%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/IsFriendlyFilter.java (91%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/IsOnVehicleFilter.java (91%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/IsPetFilter.java (92%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/IsPlayerFilter.java (92%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/IsPlayerIdFilter.java (94%) rename src/main/java/dev/dubhe/anvilcraft/api/{taslatower => teslatower}/TeslaFilter.java (97%) delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/TotemManager.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/handler/AmuletBoxHandler.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemHandler.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRageHandler.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRecoveryHandler.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfUndyingHandler.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/handler/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/api/totem/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/AbstractCakeBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/BerryCakeBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/BerryCreamBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/BlockComparatorBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/CakeBaseBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/CakeBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/CementCauldronBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/ChargerBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/ChocolateCakeBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/ChocolateCreamBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/CrabTrapBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/CreamBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/EndDustBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/ExpFluidBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/ExpFluidCauldronBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/FireCauldronBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/FishTankBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/GunpowderBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/HoneyCauldronBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/LavaCauldronBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/Layered4LevelCauldronBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/LevitationPowderBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/MagneticChuteBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/MeltGemCauldron.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/ObsidianCauldron.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/OilCauldronBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/PlasmaJetsBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/PropelPiston.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/ReinforcedConcreteBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/SimpleChuteBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/StepEffectBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/TransparentCraftingTableBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/VoidMatterBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/batch/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/better/BetterAbstractCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCakeBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCreamBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBaseBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCakeBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCreamBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/CreamBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => cake}/LargeCakeBlock.java (94%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/ShovelEatableCakeBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => cake}/StepEffectSlabBlock.java (88%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => cake}/StepEffectStairBlock.java (89%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cake/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/BaseCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/CementCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/ExpFluidCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/HoneyCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/LavaCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/Layered4LevelCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/MeltGemCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/ObsidianCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/OilCauldronBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/cauldron/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => container}/FluidTankBlock.java (83%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => container}/LargeFluidTankBlock.java (85%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => container}/ShulkerContainerBlock.java (98%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/container/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/decoration/ReinforcedConcreteBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/ember}/EmberMetalBlock.java (89%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/ember}/EmberMetalPillarBlock.java (94%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/ember}/EmberMetalSlabBlock.java (92%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/ember}/EmberMetalStairBlock.java (93%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/frost}/FrostMetalBlock.java (82%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/frost}/FrostMetalPillarBlock.java (84%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/frost}/FrostMetalSlabBlock.java (83%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/frost}/FrostMetalStairBlock.java (87%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/heavyiron}/HeavyIronBeamBlock.java (91%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/heavyiron}/HeavyIronDoorBlock.java (87%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/heavyiron}/HeavyIronPlateBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/heavyiron}/HeavyIronTrapdoorBlock.java (84%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => decoration/heavyiron}/HeavyIronWallBlock.java (88%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/decoration/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/entity/FishTankBlockEntity.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/fluid/ExpFluidBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => fluid}/MeltGemFluid.java (98%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/fluid/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/ChuteBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/CursedBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/EndDustBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/HasMobBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/LevitationBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/RadiationBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/SuperHeavyBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/item/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => laser}/BaseLaserBlock.java (83%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => laser}/LaserReceiverBlock.java (95%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/laser/PropelPistonBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => laser}/RubyLaserBlock.java (94%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => laser}/RubyPrismBlock.java (94%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/laser/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => logistics/chute}/ChuteBlock.java (78%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/MagneticChuteBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/SimpleChuteBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => logistics}/sliding/ActivatorSlidingRailBlock.java (89%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => logistics}/sliding/BaseSlidingRailBlock.java (78%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => logistics}/sliding/DetectorSlidingRailBlock.java (96%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => logistics}/sliding/ISlidingRail.java (97%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => logistics}/sliding/PoweredSlidingRailBlock.java (90%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/SlidingRailBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => logistics}/sliding/SlidingRailStopBlock.java (87%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => power}/HeliostatsBlock.java (97%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power}/LoadMonitorBlock.java (89%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power}/PiezoelectricCrystalBlock.java (96%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power}/batch/BaseBatchCraftingBlock.java (76%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power}/batch/BatchCrafterBlock.java (92%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power}/batch/BatchCutterBlock.java (92%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/batch/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/consumer}/DischargerBlock.java (88%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/consumer}/HeaterBlock.java (96%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/consumer}/InductionLightBlock.java (92%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/consumer}/ItemCollectorBlock.java (80%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/consumer}/TeslaTowerBlock.java (92%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/consumer/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/converter}/BasePowerConverterBlock.java (92%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/converter}/PowerConverterBigBlock.java (96%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/converter}/PowerConverterMiddleBlock.java (97%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/converter}/PowerConverterSmallBlock.java (96%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/converter/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/generator}/ChargeCollectorBlock.java (92%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/generator/ChargerBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/generator}/CreativeGeneratorBlock.java (95%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/generator}/HeatCollectorBlock.java (92%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/generator}/VoidEnergyCollectorBlock.java (91%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/generator/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/ring}/AccelerationRingBlock.java (91%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/ring}/DeflectionRingBlock.java (91%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/ring/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/transmitting}/RemoteTransmissionPoleBlock.java (94%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => power/transmitting}/TransmissionPoleBlock.java (95%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/production/CrabTrapBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => production}/MineralFountainBlock.java (77%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/production/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/sliding/SlidingRailBlock.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/block/sliding/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => special}/BlackHoleBlock.java (81%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/special/PlasmaJetsBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => special}/WhiteHoleBlock.java (86%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/special/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/AmberBlock.java (82%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/storage/EndDustBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/FerriteCoreMagnetBlock.java (96%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/FlintBlock.java (89%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/storage/GunpowderBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/HasMobBlock.java (90%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/HollowMagnetBlock.java (81%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/storage/LevitationPowderBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/MagnetBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/MagnetoElectricCoreBlock.java (96%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/MobAmberBlock.java (82%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/NegativeMatterBlock.java (86%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/ResentfulAmberBlock.java (78%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/ResinBlock.java (89%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/RottenFleshBlock.java (81%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/SimpleConfinementAnvilonBlock.java (88%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/SugarBlock.java (94%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => storage}/TranscendiumBlock.java (86%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/storage/VoidMatterBlock.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/storage/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/ActiveSilencerBlock.java (76%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/ArrowBlock.java (97%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/BlockDevourerBlock.java (87%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/BlockPlacerBlock.java (88%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/ControllableSandBlock.java (86%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/ImpactPileBlock.java (97%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/MengerSpongeBlock.java (87%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility}/OverseerBlock.java (97%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/utility/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility/redstone}/AdvancedComparatorBlock.java (84%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/BlockComparatorBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility/redstone}/ItemDetectorBlock.java (85%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => utility/redstone}/PulseGeneratorBlock.java (87%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/ConfinementChamberBlock.java (84%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/CorruptedBeaconBlock.java (97%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/CrushingTableBlock.java (87%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/workstation/FishTankBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/GiantAnvilBlock.java (90%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/JewelCraftingTable.java (91%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/NeoforgeBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/NeutronIrradiatorBlock.java (89%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/SpaceOvercompressorBlock.java (81%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/SpectralAnvilBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/StampingPlatformBlock.java (86%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation}/TranscendenceAnvilBlock.java (92%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/workstation/TransparentCraftingTableBlock.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/ember}/EmberAnvilBlock.java (94%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/ember}/EmberGrindstoneBlock.java (94%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/ember}/EmberSmithingTableBlock.java (88%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/frost}/FrostAnvilBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/frost}/FrostGrindstoneBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/frost}/FrostSmithingTableBlock.java (95%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/workstation/package-info.java rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/royal}/RoyalAnvilBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/royal}/RoyalGrindstoneBlock.java (93%) rename src/main/java/dev/dubhe/anvilcraft/block/{ => workstation/royal}/RoyalSmithingTableBlock.java (90%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/event/RenderEventListener.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/event/SubmitGeometryEventListener.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/gui/component/Slider.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/gui/component/SliderWidget.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/gui/screen/AnvilHammerScreen.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/init/ModAtlasIds.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/init/ModEquipmentAssets.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/init/ModRenderPipelines.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/init/ModRenderTargets.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/init/ModShaders.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/init/ModTextureAtlases.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/AdvancedComparatorBlockEntityRender.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/AdvancedComparatorRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/BaseFluidHandlerHolderRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/BatchCraftingBERenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/BatchCraftingRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/CFARenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/CelestialForgingAnvilBlockEntityRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/ChargerBlockRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/ChargerRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/FishTankRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/FluidTankBlockEntityRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/FluidTankRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/LargeFluidTankBlockEntityRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/LargeFluidTankRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/LaserBlockEntityRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/LaserBlockRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/PlasmaJetsRenderer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/AdvancedComparatorRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/BaseShowItemRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/CFARenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/FishTankRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/FluidHandlerRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/HasMobBlockRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/HeliostatsRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/LaserRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/PowerGeneratorRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/TeslaTowerRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/blockentity/state/package-info.java rename src/main/java/dev/dubhe/anvilcraft/{ => client/renderer}/entity/model/IonocraftBackpackModel.java (95%) rename src/main/java/dev/dubhe/anvilcraft/{ => client/renderer}/entity/model/IonocraftModel.java (75%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/model/MagnetizedNodeModel.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/model/ThrownHeavyHalberdModel.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/model/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/state/CauldronOutletRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/state/IonocraftRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/state/MagnetizedNodeRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/state/SlidingBlockRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/state/SpectralProjectileRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/state/ThrownHeavyHalberdRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/entity/state/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/item/CustomRenderItemClientExtension.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/item/ExtraItemDisplayRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/item/IExtraItemDisplayRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/item/decoration/IonoCraftBackpackDecoration.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/item/decoration/IonocraftBackpackDecoration.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/item/state/SpectralRenderState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/laser/CachedLaserBlockEntityRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/laser/LaserRenderer.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/renderer/laser/LaserState.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/support/FeatureRendererSupport.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/support/FluidRenderHelper.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/support/LevelLikeDisplaySupport.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/client/support/RenderModelSupport.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/client/support/TranslucentVertexConsumer.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/command/PowerGridCommand.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/command/PowergridCommand.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/data/advancement/AdvancementHandler.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/data/advancement/AnvilCraftAdvancement.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/data/advancement/ModAdvancementsHandler.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/data/provider/ModDamageTypeTagProvider.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/data/provider/ModPoiTagProvider.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/data/recipe/CoolingRecipeLoader.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/data/recipe/PillRecipeLoader.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/data/tags/PoiTypeTagLoader.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/entity/model/MagnetizedNodeModel.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/entity/model/ThrownHeavyHalberdModel.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/entity/model/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/event/CapabilitiesEventListener.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/event/CauldronFluidContentEventListener.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/event/DatapackEventListener.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/event/RegisterColorHandlersEventListener.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/event/ReloadEventListener.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/event/TooltipEventListener.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/event/VillagerEventListener.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/event/giantanvil/IShockBehaviorDefinition.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/fluid/PowderSnowFluid.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/fluid/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/init/ModAdvancements.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/ModCapabilities.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/ModColorHandlers.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/init/block/ModBlockEntityTags.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/block/ModCauldronFluidContents.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/entity/ModTradeSets.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/entity/ModVillagerTrades.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModConsumables.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModConsumeEffects.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModDataComponentPredicates.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModDeathProtections.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModFoods.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModItemProperties.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModItemSubPredicates.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/item/ModToolMaterials.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/init/loot/ModLootItemConditions.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/recipe/ModRecipeSerializers.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/init/recipe/ModSlotDisplays.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jade/provider/client/CrabTrapStorageClientProvider.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jade/provider/client/HeatableBlockClientProvider.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jade/provider/client/ItemDetectorClientProvider.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jade/provider/client/PowerBlockClientProvider.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jade/provider/client/RubyPrismClientProvider.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jade/provider/client/SpaceOvercompressorClientProvider.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jade/provider/client/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jei/util/JeiTextureConstants.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/integration/jei/util/JeiTextures.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/AmethystAxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/AmethystHoeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/AmethystPickaxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/AmethystShovelItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/AmethystSwordItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/CannedFoodItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/CrabClawItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/DiskItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/DragonRodItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberAnvilHammerItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalAxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalHeavyHalberdItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalHoeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalIngotItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalPickaxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalResonatorItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalShovelItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EmberMetalSwordItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/EnergyWeaponPlatformItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FilterItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FishTankBlockItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FrostMetalAxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FrostMetalHeavyHalberdItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FrostMetalHoeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FrostMetalPickaxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FrostMetalResonatorItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FrostMetalShovelItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/FrostMetalSwordItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/GuideBookItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/HeavyHalberdCoreItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/IonoCraftBackpackItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/MagnetItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ModFoods.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ModTiers.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/MultiphaseMatterItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/MultitoolItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/PillBoxItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/PillItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RecoveryPearl.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ResonatorCoreItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ResonatorItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RoyalAnvilHammerItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RoyalAxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RoyalHoeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RoyalPickaxeItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RoyalShovelItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RoyalSteelIngotItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/RoyalSwordItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/SeedsPackItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/SpectralSlingshotItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/StructureToolItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/TranscendenceAnvilHammerItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/TranscendenceHeavyHalberdItem.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/TranscendenceResonatorItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/armor/IonoCraftBackpackItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/armor/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/ChuteBlockItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/CursedBlockItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/EndDustBlockItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/FishTankBlockItem.java rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/FlexibleMultiPartBlockItem.java (86%) rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/FrostMetalBlockItem.java (77%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/HasMobBlockItem.java rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/HeatableBlockItem.java (92%) rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/HeliostatsItem.java (80%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/LevitationBlockItem.java rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/MengerSpongeBlockItem.java (90%) rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/MultiphaseMatterBlockItem.java (79%) rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/PlaceInWaterBlockItem.java (75%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/RadiationBlockItem.java rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/ResinBlockItem.java (92%) rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/ShulkerContainerBlockItem.java (78%) rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/SimpleMultiPartBlockItem.java (97%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/SuperHeavyBlockItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => block}/TeslaTowerItem.java (85%) rename src/main/java/dev/dubhe/anvilcraft/{block/item => item/block}/UncontainableBlockItem.java (89%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/block/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/food/CannedFoodItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => food}/UtusanItem.java (87%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/food/package-info.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => ingredients}/CapacitorItem.java (90%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ingredients/EmberMetalIngotItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => ingredients}/EmptyCapacitorItem.java (90%) rename src/main/java/dev/dubhe/anvilcraft/item/{ => ingredients}/EmptySuperCapacitorItem.java (91%) rename src/main/java/dev/dubhe/anvilcraft/item/{ => ingredients}/ExpGemItem.java (76%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ingredients/HeavyHalberdCoreItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ingredients/MultiphaseMatterItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => ingredients}/MultiphaseTranscendiumItem.java (83%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ingredients/ResonatorCoreItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ingredients/RoyalSteelIngotItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => ingredients}/SuperCapacitorItem.java (91%) rename src/main/java/dev/dubhe/anvilcraft/item/{ => ingredients}/TopazItem.java (92%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/ingredients/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/FlightTimePropertyFunction.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/component/CanTakeOutAmmo.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/component/DevourRange.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/component/FireReforging.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/component/FlightTime.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/component/PillBocContents.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/component/PillBoxContents.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/component/StoredEnergy.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/consume/PreventShrinkingConsumeEffect.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/consume/SetFoodLevelConsumeEffect.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/consume/SetRagedConsumeEffect.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/consume/TeleportToRespawnPointConsumeEffect.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/consume/TryTotemsInBoxConsumeEffect.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/consume/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/predicate/IntegerComponentPredicate.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/predicate/ItemEnchCountPredicate.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/item/property/predicate/ItemEnchantmentCountPredicate.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => tool}/AnvilHammerItem.java (80%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/DragonRodItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => tool}/HeavyHalberdItem.java (77%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/MultitoolItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/MultitoolMode.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ResonateMode.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ResonatorItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/SpectralSlingshotItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/amethyst/AmethystAxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/amethyst/AmethystHoeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/amethyst/AmethystPickaxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/amethyst/AmethystShovelItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/amethyst/AmethystSwordItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/amethyst/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberAnvilHammerItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberMetalAxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberMetalHeavyHalberdItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberMetalHoeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberMetalPickaxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberMetalResonatorItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberMetalShovelItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/EmberMetalSwordItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/ember/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/FrostMetalAxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/FrostMetalHeavyHalberdItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/FrostMetalHoeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/FrostMetalPickaxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/FrostMetalResonatorItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/FrostMetalShovelItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/FrostMetalSwordItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/frost/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/royal/RoyalAnvilHammerItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/royal/RoyalSteelAxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/royal/RoyalSteelHoeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/royal/RoyalSteelPickaxeItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/royal/RoyalSteelShovelItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/royal/RoyalSteelSwordItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/royal/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/trascendence/TranscendenceAnvilHammerItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/trascendence/TranscendenceHeavyHalberdItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/trascendence/TranscendenceResonatorItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/tool/trascendence/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/CrabClawItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/DiskItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/EnergyWeaponPlatformItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/FilterItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => utility}/GeodeItem.java (79%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/GuideBookItem.java rename src/main/java/dev/dubhe/anvilcraft/item/{ => utility}/IonoCraftItem.java (79%) create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/MagnetItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/PillBoxItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/SeedsPackItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/StructureToolItem.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/item/utility/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/BucketResourceHandlerMixin.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/CauldronFluidContentMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/EntityTypeBuilderMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/ExplosionMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/GameRendererMixin.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/GuiGraphicsExtractorMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/GuiGraphicsMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/ItemFrameRendererMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/ItemOverridesMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/ItemStackMixin.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/ItemSubmitMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/LevelRendererMixin.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/MinecraftClientMixin.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/ServerExplosionMixin.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/SubmitNodeCollectionMixin.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/accessor/AbstractArrowAccessor.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/accessor/FluidStateModelSetAccessor.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/accessor/ICacheInputOutputImplAccessor.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/accessor/LevelRendererAccessor.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/accessor/StacksResourceHandlerAccessor.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/compat/EmbChunkBuilderMeshingTaskMixin.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/poachfixers/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/mixin/portal/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/network/RecipeCacheSyncPacket.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/network/RecipesSyncPacket.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/StampingUniqueItemsRecipe.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/cache/JewelCraftingRecipeCache.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/cache/RecipeCaches.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/cache/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/predicate/item/HasDiffItems.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/predicate/item/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/wrap/BaseStampingRecipe.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/anvil/wrap/StampingDiffRecipe.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/display/WithAnyPotionsExcept.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/display/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/sync/MutableRecipeMap.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/recipe/sync/RecipesRecord.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/DangerUtil.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/DataGenUtil.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/FullBrightLevel.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/FullBrightLevelProxy.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/util/ItemResourceHelper.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/util/PacketDistributingHelper.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/util/anvil/package-info.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/function/Consumer4.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/function/SafePredicate.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/function/TriFunction.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/function/package-info.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/util/mixin/ExtensibleBlockEntityEntry.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/util/mixin/ModifiedSelector.java delete mode 100644 src/main/java/dev/dubhe/anvilcraft/util/mixins/minecraft/MMItemStack.java create mode 100644 src/main/java/dev/dubhe/anvilcraft/util/registrater/DataGenUtil.java create mode 100644 src/main/resources/assets/anvilcraft/atlases/laser.json delete mode 100644 src/main/resources/assets/anvilcraft/blockstates/fire_cauldron.json create mode 100644 src/main/resources/assets/anvilcraft/equipment/ionocraft_backpack.json rename src/main/resources/assets/anvilcraft/models/block/{fire_cauldron_fire1.json => oil_cauldron_fire1.json} (100%) rename src/main/resources/assets/anvilcraft/models/block/{fire_cauldron_fire2.json => oil_cauldron_fire2.json} (100%) rename src/main/resources/assets/anvilcraft/models/block/{fire_cauldron_fire3.json => oil_cauldron_fire3.json} (100%) rename src/main/resources/assets/anvilcraft/models/block/{fire_cauldron_fire4.json => oil_cauldron_fire4.json} (100%) delete mode 100644 src/main/resources/assets/anvilcraft/models/item/multitool_all.json create mode 100644 src/main/resources/assets/anvilcraft/particles/white_smoke.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/blit.fsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/blit.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/blit.vsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/rendertype_laser.fsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/rendertype_laser.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/rendertype_laser.vsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/rendertype_lightning.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/rendertype_lightning.vsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/rendertype_translucent_colored_overlay.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/ring.fsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/ring.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/selection.fsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/core/selection.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/post/bloom.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/post/line_bloom.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/program/apply_bloom.fsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/program/apply_bloom.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/program/blit.fsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/program/blit.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/program/blur.fsh delete mode 100644 src/main/resources/assets/anvilcraft/shaders/program/blur.json delete mode 100644 src/main/resources/assets/anvilcraft/shaders/program/blur.vsh create mode 100644 src/main/resources/assets/anvilcraft/textures/block/advanced_comparator_indicator.png rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_black.png => black_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_black_bottom.png => black_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_black_top.png => black_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_black_wall.png => black_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_blue.png => blue_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_blue_bottom.png => blue_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_blue_top.png => blue_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_blue_wall.png => blue_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_brown.png => brown_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_brown_bottom.png => brown_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_brown_top.png => brown_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_brown_wall.png => brown_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_cyan.png => cyan_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_cyan_bottom.png => cyan_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_cyan_top.png => cyan_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_cyan_wall.png => cyan_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_gray.png => gray_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_gray_bottom.png => gray_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_gray_top.png => gray_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_gray_wall.png => gray_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_green.png => green_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_green_bottom.png => green_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_green_top.png => green_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_green_wall.png => green_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_blue.png => light_blue_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_blue_bottom.png => light_blue_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_blue_top.png => light_blue_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_blue_wall.png => light_blue_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_gray.png => light_gray_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_gray_bottom.png => light_gray_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_gray_top.png => light_gray_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_light_gray_wall.png => light_gray_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_lime.png => lime_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_lime_bottom.png => lime_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_lime_top.png => lime_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_lime_wall.png => lime_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_magenta.png => magenta_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_magenta_bottom.png => magenta_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_magenta_top.png => magenta_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_magenta_wall.png => magenta_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_orange.png => orange_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_orange_bottom.png => orange_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_orange_top.png => orange_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_orange_wall.png => orange_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_pink.png => pink_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_pink_bottom.png => pink_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_pink_top.png => pink_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_pink_wall.png => pink_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_purple.png => purple_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_purple_bottom.png => purple_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_purple_top.png => purple_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_purple_wall.png => purple_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_red.png => red_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_red_bottom.png => red_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_red_top.png => red_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_red_wall.png => red_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_white.png => white_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_white_bottom.png => white_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_white_top.png => white_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_white_wall.png => white_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_yellow.png => yellow_reinforced_concrete.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_yellow_bottom.png => yellow_reinforced_concrete_bottom.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_yellow_top.png => yellow_reinforced_concrete_top.png} (100%) rename src/main/resources/assets/anvilcraft/textures/block/{reinforced_concrete_yellow_wall.png => yellow_reinforced_concrete_wall.png} (100%) rename src/main/resources/assets/anvilcraft/textures/gui/jei/{multiple_to_one_smithing_jei.png => background/multiple_to_one_smithing.png} (100%) rename src/main/resources/assets/anvilcraft/textures/{block/laser.png => laser/beam.png} (100%) create mode 100644 src/main/resources/assets/anvilcraft/textures/laser/solid.png diff --git a/.codebuddy/plans/replace-blockstate-calls_27fd1c90.md b/.codebuddy/plans/replace-blockstate-calls_27fd1c90.md new file mode 100644 index 0000000000..9b894aa335 --- /dev/null +++ b/.codebuddy/plans/replace-blockstate-calls_27fd1c90.md @@ -0,0 +1,73 @@ +--- +name: replace-blockstate-calls +overview: 将 ModBlocks.java 中使用 `.blockstate(DataGenUtil::simpleBlock)` 和 `.blockstate(DataGenUtil::horizontalFacingBlock)` 且在 models/block/ 中有对应模型文件的方块,替换为 `.blockstate(DataGenUtil::noExtraModelOrState)`。共16处替换。 +todos: + - id: replace-simpleblock + content: 使用 [mcp:idea] replace_text_in_file 将 .blockstate(DataGenUtil::simpleBlock) 替换为 .blockstate(DataGenUtil::noExtraModelOrState)(15处) + status: completed + - id: replace-horizontalfacing + content: 使用 [mcp:idea] replace_text_in_file 将 .blockstate(DataGenUtil::horizontalFacingBlock) 替换为 .blockstate(DataGenUtil::noExtraModelOrState)(1处) + status: completed + dependencies: + - replace-simpleblock + - id: verify-result + content: 使用 [mcp:idea] search_in_files_by_text 验证文件中不再存在 simpleBlock 和 horizontalFacingBlock 调用 + status: completed + dependencies: + - replace-horizontalfacing +--- + +## 用户需求 + +在 ModBlocks.java 文件中,查找所有 `.blockstate()` 调用(如 `.blockstate(DataGenUtil::simpleBlock)`、`.blockstate(DataGenUtil::horizontalFacingBlock)` 等),当对应方块在 `models/block/` 文件夹中存在模型文件时,将其替换为 `.blockstate(DataGenUtil::noExtraModelOrState)`。 + +## 已确认需替换的项目(共16处) + +### `.blockstate(DataGenUtil::simpleBlock)` → `.blockstate(DataGenUtil::noExtraModelOrState)`(15处) + +1. 行982: impact_pile +2. 行1094: mineral_fountain +3. 行1178: sliding_rail_stop +4. 行1471: frost_metal_block +5. 行1496: cut_frost_metal_block +6. 行1596: ember_metal_block +7. 行1612: cut_ember_metal_block +8. 行1692: transcendium_block +9. 行1703: heavy_iron_block +10. 行3241: confined_space_anvilon +11. 行3254: confined_mass_anvilon +12. 行3267: confined_energy_anvilon +13. 行3280: confined_neutronium_ingot +14. 行3294: confinement_chamber +15. 行3304: singularity_crystal + +### `.blockstate(DataGenUtil::horizontalFacingBlock)` → `.blockstate(DataGenUtil::noExtraModelOrState)`(1处) + +16. 行310: stamping_platform + +### 不替换的类型 + +- `DataGenUtil::transparentBlock`(3处)- 只生成 blockstate 不生成模型 +- `DataGenUtil::onlyState`(8处)- 只生成 blockstate 不生成模型 +- `ModelProviderUtil::liquid`(4处)- 液体模型 +- 各种 lambda 表达式 - 自定义 slab/stairs/wall 逻辑 + +## 技术方案 + +使用 IDEA MCP 的 `replace_text_in_file` 工具逐个替换,不使用任何脚本。 + +### 替换策略 + +1. 先替换 `.blockstate(DataGenUtil::simpleBlock)` → `.blockstate(DataGenUtil::noExtraModelOrState)`(共15处,使用 replaceAll 一次性完成,因为所有15处均已确认有对应模型文件) +2. 再替换 `.blockstate(DataGenUtil::horizontalFacingBlock)` → `.blockstate(DataGenUtil::noExtraModelOrState)`(1处) +3. 替换完成后验证结果 + +### 注意事项 + +- 不能替换已经是 `noExtraModelOrState` 的条目 +- 不能替换 `transparentBlock`、`onlyState`、`liquid` 及 lambda 表达式 +- 所有替换均通过 IDEA MCP 工具完成,不使用脚本 + +# Agent Extensions + +- **idea**: 使用 `replace_text_in_file` 工具执行文本替换,使用 `search_in_files_by_text` 验证替换结果 \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d9f4e50539..dfd4062bcf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,10 +67,16 @@ jobs: continue-on-error: true - name: gametest - uses: Anvil-Dev/dedicated-server-launch-test@1.21.1-neoforge + uses: Anvil-Dev/dedicated-server-launch-test@universal continue-on-error: false with: - mod: build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar + mods: | + build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar + minecraft_version: '26.1.2' + mod_loader: 'neoforge' + loader_version: '26.1.2.59-beta' + extra-mods: 'anvil-lib:2.0.0+snapshot.384' + quiet-setup: 'True' - name: publish neoforge mc mod uses: Kir-Antipov/mc-publish@v3.3 @@ -78,9 +84,9 @@ jobs: with: name: "${{ steps.properties.outputs.mod_name }} For NeoForge v${{ steps.version.outputs.version }}" version: ${{ steps.version.outputs.version }} - game-versions: 1.21.1 + game-versions: 26.1.2 version-type: ${{ env.VERSION_TYPE }} - java: 21 + java: ${{ steps.properties.outputs.java_version }} fail-mode: skip changelog: Early test version, please download and play with caution. 早期测试版本,请谨慎下载游玩 dependencies: | diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 47171a8df4..c3c88978f9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -58,7 +58,12 @@ jobs: path: build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar - name: gametest - uses: Anvil-Dev/dedicated-server-launch-test@1.21.1-neoforge + uses: Anvil-Dev/dedicated-server-launch-test@universal with: - mod: build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar - extra-mods: patchouli:1.21-87-neoforge cloth-config:15.0.140+neoforge + mods: | + build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar + minecraft_version: '26.1.2' + mod_loader: 'neoforge' + loader_version: '26.1.2.59-beta' + extra-mods: 'anvil-lib:2.0.0+snapshot.384' + quiet-setup: 'True' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d3ce9b58d3..376b5610c2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -70,9 +70,9 @@ jobs: with: name: "${{ steps.properties.outputs.mod_name }} For NeoForge v${{ steps.version.outputs.version }}" version: ${{ steps.version.outputs.version }} - game-versions: 1.21.1 + game-versions: 26.1.2 version-type: ${{ env.VERSION_TYPE }} - java: 21 + java: ${{ steps.properties.outputs.java_version }} fail-mode: skip changelog: ${{ github.event.release.body }} dependencies: | diff --git a/build.gradle b/build.gradle index 6a1e3d695b..faef6a93b3 100644 --- a/build.gradle +++ b/build.gradle @@ -39,18 +39,24 @@ apply from: "$rootDir/gradle/scripts/resources.gradle" apply from: "$rootDir/dependencies.gradle" // Mojang ships Java 21 to end users starting in 1.20.5, so mods should target Java 21. -java.toolchain.languageVersion = JavaLanguageVersion.of(21) +java.toolchain.languageVersion = JavaLanguageVersion.of(25) // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } compileJava.options.encoding = 'UTF-8' -machete { - // disable machete locally for faster builds - enabled = false -} +// disable machete locally for faster builds +machete.enabled = false + +lombok.version = "1.18.44" -lombok { - version = "1.18.34" +allprojects { + gradle.projectsEvaluated { + tasks.withType(JavaCompile).tap { + configureEach { + options.compilerArgs << "-Xmaxerrs" << "10000" + } + } + } } diff --git a/dependencies.gradle b/dependencies.gradle index a52d5ddd00..73ed3ec89b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -4,16 +4,15 @@ dependencies { compileOnly(libs.bundles.anvillib) interfaceInjectionData(libs.anvillib.recipe) interfaceInjectionData(libs.anvillib.moveableEntityBlock) - jarJar(libs.anvillib) +// jarJar(libs.anvillib) // JEI compileOnlyApi(libs.jei.common.api) { transitive = false } compileOnlyApi(libs.jei.forge.api) { transitive = false } implementation(libs.jei.forge) { transitive = false } - // Sodium, Iris, Embeddium + // Sodium, Iris compileOnly(libs.sodium) - compileOnly(libs.embeddium) compileOnly(libs.iris) // Jade diff --git a/gradle.properties b/gradle.properties index 15815e1c57..1d31c50be0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Jvm info -java_version=21 -org.gradle.jvmargs=-Xmx1G +java_version=25 +org.gradle.jvmargs=-Xmx2G org.gradle.daemon=false org.gradle.debug=false @@ -17,8 +17,8 @@ mod_url=https://github.com/Anvil-Dev/AnvilCraft # Development info maven_group=dev.dubhe -minecraft_version_range=[1.21,1.21.1) -neo_version_range=[21.0.0-beta,) +minecraft_version_range=[26.1,26.2) +neo_version_range=[26.1.0.0-beta,) # The loader version range can only use the major version of FML as bounds loader_version_range=[4,) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 43b8f2f280..fdbd32f0b8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,39 +1,37 @@ [versions] -minecraft = "1.21.1" -neoForge = "21.1.219" -jei = "19.21.0.247" -jade = "15.3.4+neoforge" -parchment = "2024.11.17" -modDevGradle = "2.0.140" +minecraft = "26.1.2" +neoForge = "26.1.2.59-beta" +jei = "29.5.0.28" +jade = "26.1.1+neoforge" +modDevGradle = "2.0.141" lombok = "8.7.1" -machete = "1.+" -anvillib = "2.0.0+snapshot.314" -sodium = "mc1.21.1-0.6.13-neoforge" -embeddium = "1.0.11+mc1.21.1" -iris = "1.8.1+1.21.1-neoforge" +machete = "1.2.0" +anvillib = "2.0.0+snapshot.382" +sodium = "mc26.1.2-0.8.10-neoforge" +iris = "1.10.9+26.1-neoforge" [libraries] -jei-common-api = { group = "mezz.jei", name = "jei-1.21.1-common-api", version.ref = "jei" } -jei-forge-api = { group = "mezz.jei", name = "jei-1.21.1-neoforge-api", version.ref = "jei" } -jei-forge = { group = "mezz.jei", name = "jei-1.21.1-neoforge", version.ref = "jei" } +jei-common-api = { group = "mezz.jei", name = "jei-26.1.2-common-api", version.ref = "jei" } +jei-forge-api = { group = "mezz.jei", name = "jei-26.1.2-neoforge-api", version.ref = "jei" } +jei-forge = { group = "mezz.jei", name = "jei-26.1.2-neoforge", version.ref = "jei" } sodium = { group = "maven.modrinth", name = "sodium", version.ref = "sodium"} -embeddium = { group = "maven.modrinth", name = "embeddium", version.ref = "embeddium"} iris = { group = "maven.modrinth", name = "iris", version.ref = "iris"} jade = { group = "maven.modrinth", name = "jade", version.ref = "jade" } -anvillib-codec = { group = "dev.anvilcraft.lib", name = "anvillib-codec-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-config = { group = "dev.anvilcraft.lib", name = "anvillib-config-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-recipe = { group = "dev.anvilcraft.lib", name = "anvillib-recipe-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-registrum = { group = "dev.anvilcraft.lib", name = "anvillib-registrum-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-moveableEntityBlock = { group = "dev.anvilcraft.lib", name = "anvillib-moveable-entity-block-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-multiblock = { group = "dev.anvilcraft.lib", name = "anvillib-multiblock-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-network = { group = "dev.anvilcraft.lib", name = "anvillib-network-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-integration = { group = "dev.anvilcraft.lib", name = "anvillib-integration-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-util = { group = "dev.anvilcraft.lib", name = "anvillib-util-neoforge-1.21.1", version.ref = "anvillib" } -anvillib-wheel = { group = "dev.anvilcraft.lib", name = "anvillib-wheel-neoforge-1.21.1", version.ref = "anvillib" } -anvillib = { group = "dev.anvilcraft.lib", name = "anvillib-neoforge-1.21.1", version.ref = "anvillib" } +anvillib-codec = { group = "dev.anvilcraft.lib", name = "anvillib-codec-neoforge-26.1", version.ref = "anvillib" } +anvillib-config = { group = "dev.anvilcraft.lib", name = "anvillib-config-neoforge-26.1", version.ref = "anvillib" } +anvillib-recipe = { group = "dev.anvilcraft.lib", name = "anvillib-recipe-neoforge-26.1", version.ref = "anvillib" } +anvillib-registrum = { group = "dev.anvilcraft.lib", name = "anvillib-registrum-neoforge-26.1", version.ref = "anvillib" } +anvillib-moveableEntityBlock = { group = "dev.anvilcraft.lib", name = "anvillib-moveable-entity-block-neoforge-26.1", version.ref = "anvillib" } +anvillib-multiblock = { group = "dev.anvilcraft.lib", name = "anvillib-multiblock-neoforge-26.1", version.ref = "anvillib" } +anvillib-network = { group = "dev.anvilcraft.lib", name = "anvillib-network-neoforge-26.1", version.ref = "anvillib" } +anvillib-integration = { group = "dev.anvilcraft.lib", name = "anvillib-integration-neoforge-26.1", version.ref = "anvillib" } +anvillib-util = { group = "dev.anvilcraft.lib", name = "anvillib-util-neoforge-26.1", version.ref = "anvillib" } +anvillib-wheel = { group = "dev.anvilcraft.lib", name = "anvillib-wheel-neoforge-26.1", version.ref = "anvillib" } +anvillib-rendering = { group = "dev.anvilcraft.lib", name = "anvillib-rendering-neoforge-26.1", version.ref = "anvillib" } +anvillib = { group = "dev.anvilcraft.lib", name = "anvillib-neoforge-26.1", version.ref = "anvillib" } [bundles] -anvillib = [ "anvillib-codec", "anvillib-config", "anvillib-recipe", "anvillib-registrum", "anvillib-moveableEntityBlock", "anvillib-multiblock", "anvillib-network", "anvillib-integration", "anvillib-util", "anvillib-wheel" ] +anvillib = [ "anvillib-codec", "anvillib-config", "anvillib-recipe", "anvillib-registrum", "anvillib-moveableEntityBlock", "anvillib-multiblock", "anvillib-network", "anvillib-integration", "anvillib-rendering", "anvillib-util", "anvillib-wheel" ] [plugins] modDevGradle = { id = "net.neoforged.moddev", version.ref = "modDevGradle" } diff --git a/gradle/scripts/jars.gradle b/gradle/scripts/jars.gradle index beb0aab815..423b85e157 100644 --- a/gradle/scripts/jars.gradle +++ b/gradle/scripts/jars.gradle @@ -19,6 +19,4 @@ jar { } } -base { - archivesName = "${project.name}-${libs.versions.minecraft.get()}" -} +base.archivesName = "${project.name}-${libs.versions.minecraft.get()}" diff --git a/gradle/scripts/moddevgradle.gradle b/gradle/scripts/moddevgradle.gradle index a28e38a15f..7c4c5a8c4c 100644 --- a/gradle/scripts/moddevgradle.gradle +++ b/gradle/scripts/moddevgradle.gradle @@ -1,11 +1,6 @@ neoForge { version = libs.versions.neoForge.get() - parchment { - minecraftVersion = "1.21.1" - mappingsVersion = libs.versions.parchment.get() - } - // This line is optional. Access Transformers are automatically detected accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg') @@ -31,6 +26,8 @@ neoForge { jvmArgument "-XX:+AllowEnhancedClassRedefinition" } + jvmArgument "-XX:+IgnoreUnrecognizedVMOptions" + // Recommended logging level for the console // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels @@ -43,6 +40,34 @@ neoForge { systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id } + clientMSA { + client() + devLogin = true + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + } + + clientRenderDoc { + client() + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + systemProperty 'anvillib.rendering.debugMode', 'true' + systemProperty('neoforge.rendernurse.renderdoc.library', file("libs/renderdoc.dll").absolutePath) + programArgument("--renderDebugLabels") + jvmArgument("-javaagent:" + file("libs/renderdoc-loader.jar").absolutePath) + } + + clientRenderDocMSA { + client() + devLogin = true + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + systemProperty 'anvillib.rendering.debugMode', 'true' + systemProperty('neoforge.rendernurse.renderdoc.library', file("libs/renderdoc.dll").absolutePath) + programArgument("--renderDebugLabels") + jvmArgument("-javaagent:" + file("libs/renderdoc-loader.jar").absolutePath) + } + server { server() programArgument '--nogui' @@ -58,7 +83,7 @@ neoForge { } data { - data() + clientData() // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it // gameDirectory = project.file('run-data') diff --git a/gradle/scripts/publishing.gradle b/gradle/scripts/publishing.gradle index fa5db15117..39d53323e7 100644 --- a/gradle/scripts/publishing.gradle +++ b/gradle/scripts/publishing.gradle @@ -1,13 +1,13 @@ -artifacts { - archives tasks.jar - archives tasks.sourcesJar +tasks.named("assemble") { + dependsOn tasks.jar + dependsOn tasks.sourcesJar } publishing { publications { mavenJava(MavenPublication) { groupId = project.group - artifactId = project.archivesBaseName + artifactId = project.base.archivesName.get() version = project.version from components.java diff --git a/gradle/scripts/resources.gradle b/gradle/scripts/resources.gradle index 8abbe13120..cff98551c8 100644 --- a/gradle/scripts/resources.gradle +++ b/gradle/scripts/resources.gradle @@ -11,18 +11,18 @@ def supporters = getConfig("supporters") // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html tasks.withType(ProcessResources).configureEach { var replaceProperties = [ - minecraft_version : libs.versions.minecraft.get(), - minecraft_version_range: minecraft_version_range, - neo_version : libs.versions.neoForge.get(), - neo_version_range : neo_version_range, - loader_version_range : loader_version_range, - mod_id : mod_id, - mod_name : mod_name, - mod_license : mod_license, - mod_version : version, - mod_description : mod_description, - "contributors" : contributors, - "supporters" : supporters + minecraft_version : libs.versions.minecraft.get(), + minecraft_version_range : minecraft_version_range, + neo_version : libs.versions.neoForge.get(), + neo_version_range : neo_version_range, + loader_version_range : loader_version_range, + mod_id : mod_id, + mod_name : mod_name, + mod_license : mod_license, + mod_version : version, + mod_description : mod_description, + "contributors" : contributors, + "supporters" : supporters ] inputs.properties replaceProperties diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b1c8..1a704683a0 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.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle b/settings.gradle index 4c677d6a49..80bd0a9f9d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,15 +2,15 @@ pluginManagement { repositories { mavenLocal() gradlePluginPortal() - maven { url 'https://maven.neoforged.net/releases' } - maven { url "https://maven.fabricmc.net/" } - maven { url "https://maven.architectury.dev/" } - maven { url "https://maven.shedaniel.me/" } + maven { url = 'https://maven.neoforged.net/releases' } + maven { url = "https://maven.fabricmc.net/" } + maven { url = "https://maven.architectury.dev/" } + maven { url = "https://maven.shedaniel.me/" } } } plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' } rootProject.name = mod_id + "-neoforge" diff --git a/src/generated/resources/assets/anvilcraft/blockstates/black_chocolate_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/black_chocolate_slab.json index c902f59f82..586a1cb675 100644 --- a/src/generated/resources/assets/anvilcraft/blockstates/black_chocolate_slab.json +++ b/src/generated/resources/assets/anvilcraft/blockstates/black_chocolate_slab.json @@ -4,7 +4,7 @@ "model": "anvilcraft:block/black_chocolate_slab" }, "type=double": { - "model": "anvilcraft:block/black_chocolate_block" + "model": "anvilcraft:block/black_chocolate" }, "type=top": { "model": "anvilcraft:block/black_chocolate_slab_top" diff --git a/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete.json new file mode 100644 index 0000000000..0a35ff1d3b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/black_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/black_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/black_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..fe35e088bf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/black_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/black_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/black_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..2ddad1fdf4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/black_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/black_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_wall.json new file mode 100644 index 0000000000..91faa30c07 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/black_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/black_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete.json new file mode 100644 index 0000000000..b2966c3645 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/blue_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/blue_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/blue_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..d82f1854dc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/blue_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/blue_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/blue_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..3eae44159c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..7f1b3951e4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/blue_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/blue_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete.json new file mode 100644 index 0000000000..2299bd2a9e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/brown_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/brown_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/brown_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..556cb234b4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/brown_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/brown_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/brown_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..22f412c796 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/brown_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_wall.json new file mode 100644 index 0000000000..7743d4dfeb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/brown_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/brown_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/chocolate_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/chocolate_slab.json index 79dd18f3c7..e9b122dbd6 100644 --- a/src/generated/resources/assets/anvilcraft/blockstates/chocolate_slab.json +++ b/src/generated/resources/assets/anvilcraft/blockstates/chocolate_slab.json @@ -4,7 +4,7 @@ "model": "anvilcraft:block/chocolate_slab" }, "type=double": { - "model": "anvilcraft:block/chocolate_block" + "model": "anvilcraft:block/chocolate" }, "type=top": { "model": "anvilcraft:block/chocolate_slab_top" diff --git a/src/generated/resources/assets/anvilcraft/blockstates/cut_flint_pillar.json b/src/generated/resources/assets/anvilcraft/blockstates/cut_flint_pillar.json index 50ec48348f..b41fe5a29a 100644 --- a/src/generated/resources/assets/anvilcraft/blockstates/cut_flint_pillar.json +++ b/src/generated/resources/assets/anvilcraft/blockstates/cut_flint_pillar.json @@ -1,15 +1,14 @@ { "variants": { "axis=x": { - "model": "anvilcraft:block/cut_flint_pillar_horizontal", - "x": 90, - "y": 90 + "model": "anvilcraft:block/cut_flint_pillar", + "z": 90 }, "axis=y": { "model": "anvilcraft:block/cut_flint_pillar" }, "axis=z": { - "model": "anvilcraft:block/cut_flint_pillar_horizontal", + "model": "anvilcraft:block/cut_flint_pillar", "x": 90 } } diff --git a/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete.json new file mode 100644 index 0000000000..bd98d10bc7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/cyan_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/cyan_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/cyan_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..14f70aabc8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/cyan_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/cyan_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/cyan_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..60d2727217 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/cyan_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_wall.json new file mode 100644 index 0000000000..99d6bd584f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/cyan_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete.json new file mode 100644 index 0000000000..68319c3872 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/gray_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/gray_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/gray_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..ac3278ddd4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/gray_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/gray_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/gray_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..42e49c58d3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..b957307075 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/gray_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/gray_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete.json new file mode 100644 index 0000000000..58de77e41d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/green_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/green_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/green_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..4a2bccd74d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/green_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/green_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/green_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..4e5d115d41 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/green_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/green_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_wall.json new file mode 100644 index 0000000000..5fff4afd4c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/green_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/green_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete.json new file mode 100644 index 0000000000..f907e748f4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/light_blue_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..150fec5c4f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/light_blue_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..0db1c019ea --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..60c30156ed --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_blue_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete.json new file mode 100644 index 0000000000..b718a4d387 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/light_gray_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..b35238063b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/light_gray_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..88ab15924b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..3e61af1591 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/light_gray_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete.json new file mode 100644 index 0000000000..ba47364a42 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/lime_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/lime_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/lime_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..0913f1ce36 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/lime_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/lime_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/lime_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..c88ae9625b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/lime_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_wall.json new file mode 100644 index 0000000000..61b218ba23 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/lime_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/lime_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete.json new file mode 100644 index 0000000000..b533e92462 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/magenta_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/magenta_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/magenta_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..354187e54c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/magenta_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/magenta_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/magenta_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..cf6ef40fed --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/magenta_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_wall.json new file mode 100644 index 0000000000..3cc095cb6d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/magenta_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete.json new file mode 100644 index 0000000000..7287f2f1ec --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/orange_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/orange_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/orange_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..bd0c6d20b1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/orange_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/orange_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/orange_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..89f2af9b77 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/orange_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_wall.json new file mode 100644 index 0000000000..17482198aa --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/orange_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/orange_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete.json new file mode 100644 index 0000000000..9c7187351a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/pink_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/pink_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/pink_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..66adb50779 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/pink_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/pink_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/pink_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..87e5e793b2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/pink_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_wall.json new file mode 100644 index 0000000000..a515789761 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/pink_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/pink_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete.json new file mode 100644 index 0000000000..82f4ea5d00 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/purple_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/purple_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/purple_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..716e9a6d21 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/purple_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/purple_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/purple_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..d9ca4dadca --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/purple_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_wall.json new file mode 100644 index 0000000000..4c2dd4f916 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/purple_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/purple_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete.json new file mode 100644 index 0000000000..1b0cabacbd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/red_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/red_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/red_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..e849791941 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/red_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/red_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/red_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..44aebfca1f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/red_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/red_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_wall.json new file mode 100644 index 0000000000..816ef2f709 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/red_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/red_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black.json deleted file mode 100644 index c7e5fb1918..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_black" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_black" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_black" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_slab.json deleted file mode 100644 index cb9b882c4b..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_black_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_black" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_black_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_stair.json deleted file mode 100644 index 7b20c1a300..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_black_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_black_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_wall.json deleted file mode 100644 index 4844c5ce8b..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_black_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_black_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue.json deleted file mode 100644 index e901f92307..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_blue" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_blue" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_blue" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_slab.json deleted file mode 100644 index a061bee7a9..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_blue_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_blue" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_blue_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_stair.json deleted file mode 100644 index b5478fce13..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_blue_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_wall.json deleted file mode 100644 index 05b266c539..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_blue_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_blue_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown.json deleted file mode 100644 index cfd3978a92..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_brown" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_brown" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_brown" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_slab.json deleted file mode 100644 index 3ad779ce46..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_brown_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_brown" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_brown_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_stair.json deleted file mode 100644 index 81cdf89dcc..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_brown_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_wall.json deleted file mode 100644 index 7d18baf4b4..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_brown_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_brown_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan.json deleted file mode 100644 index 320b5f25c2..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_cyan" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_cyan" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_cyan" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_slab.json deleted file mode 100644 index d3686159b4..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_cyan_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_cyan" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_cyan_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_stair.json deleted file mode 100644 index a7bbfe7996..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_cyan_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_wall.json deleted file mode 100644 index 6aa1663aed..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_cyan_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_cyan_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray.json deleted file mode 100644 index c1e904e628..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_gray" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_gray" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_gray" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_slab.json deleted file mode 100644 index 607c49a9bf..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_gray_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_gray" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_gray_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_stair.json deleted file mode 100644 index 3214fb950c..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_gray_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_wall.json deleted file mode 100644 index e596bf8de4..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_gray_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_gray_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green.json deleted file mode 100644 index bac5b5bb79..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_green" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_green" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_green" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_slab.json deleted file mode 100644 index 8746824724..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_green_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_green" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_green_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_stair.json deleted file mode 100644 index 8770543a18..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_green_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_green_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_wall.json deleted file mode 100644 index 9bba397d60..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_green_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_green_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue.json deleted file mode 100644 index d5b8832e81..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_light_blue" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_light_blue" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_light_blue" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index 75377e8da4..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_light_blue" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index 0afe735f46..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_wall.json deleted file mode 100644 index a5bc5d2138..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_blue_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_blue_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray.json deleted file mode 100644 index 3e11c9f8a4..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_light_gray" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_light_gray" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_light_gray" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index 781afd236e..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_light_gray" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index 71b4b0e1d8..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_wall.json deleted file mode 100644 index b8ef108017..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_light_gray_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_light_gray_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime.json deleted file mode 100644 index 5ae3b885d2..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_lime" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_lime" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_lime" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_slab.json deleted file mode 100644 index 2812c5d52f..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_lime_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_lime" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_lime_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_stair.json deleted file mode 100644 index a98e09f95a..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_lime_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_wall.json deleted file mode 100644 index 431a3cb033..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_lime_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_lime_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta.json deleted file mode 100644 index 0a5230c5a3..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_magenta" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_magenta" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_magenta" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_slab.json deleted file mode 100644 index 3efc2c5e05..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_magenta_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_magenta" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_magenta_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_stair.json deleted file mode 100644 index 76ac675521..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_magenta_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_wall.json deleted file mode 100644 index 72d0a0634a..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_magenta_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_magenta_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange.json deleted file mode 100644 index 38eb319cf0..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_orange" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_orange" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_orange" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_slab.json deleted file mode 100644 index f721430307..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_orange_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_orange" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_orange_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_stair.json deleted file mode 100644 index 559dbee286..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_orange_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_wall.json deleted file mode 100644 index 0fdc047eb1..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_orange_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_orange_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink.json deleted file mode 100644 index 1f18cdb8e2..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_pink" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_pink" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_pink" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_slab.json deleted file mode 100644 index dd855e3643..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_pink_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_pink" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_pink_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_stair.json deleted file mode 100644 index aceb282c55..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_pink_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_wall.json deleted file mode 100644 index c6101f97df..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_pink_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_pink_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple.json deleted file mode 100644 index f4d89ca86c..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_purple" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_purple" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_purple" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_slab.json deleted file mode 100644 index 573d22f81a..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_purple_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_purple" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_purple_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_stair.json deleted file mode 100644 index 0a09263f3c..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_purple_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_wall.json deleted file mode 100644 index ef8da8de8f..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_purple_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_purple_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red.json deleted file mode 100644 index a49afa7a27..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_red" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_red" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_red" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_slab.json deleted file mode 100644 index 09ba9f35e7..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_red_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_red" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_red_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_stair.json deleted file mode 100644 index a4f5ebd9cb..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_red_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_red_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_wall.json deleted file mode 100644 index a7f526f09e..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_red_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_red_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white.json deleted file mode 100644 index db5ead9ff3..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_white" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_white" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_white" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_slab.json deleted file mode 100644 index 465ebdf0c0..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_white_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_white" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_white_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_stair.json deleted file mode 100644 index 0be7b90d02..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_white_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_white_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_wall.json deleted file mode 100644 index 7f6199a760..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_white_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_white_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow.json deleted file mode 100644 index da3e6fafb4..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "half=bottom": { - "model": "anvilcraft:block/reinforced_concrete_bottom_yellow" - }, - "half=single": { - "model": "anvilcraft:block/reinforced_concrete_yellow" - }, - "half=top": { - "model": "anvilcraft:block/reinforced_concrete_top_yellow" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_slab.json deleted file mode 100644 index bd5918db24..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "anvilcraft:block/reinforced_concrete_yellow_slab" - }, - "type=double": { - "model": "anvilcraft:block/reinforced_concrete_yellow" - }, - "type=top": { - "model": "anvilcraft:block/reinforced_concrete_yellow_slab_top" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_stair.json deleted file mode 100644 index f9dd69c4fb..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair" - }, - "facing=east,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_inner", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair_outer", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "anvilcraft:block/reinforced_concrete_yellow_stair", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_wall.json deleted file mode 100644 index 23ba3074e1..0000000000 --- a/src/generated/resources/assets/anvilcraft/blockstates/reinforced_concrete_yellow_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_post" - }, - "when": { - "up": "true" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side_tall", - "uvlock": true, - "y": 90 - }, - "when": { - "east": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side", - "uvlock": true - }, - "when": { - "north": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side_tall", - "uvlock": true - }, - "when": { - "north": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side_tall", - "uvlock": true, - "y": 180 - }, - "when": { - "south": "tall" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "low" - } - }, - { - "apply": { - "model": "anvilcraft:block/reinforced_concrete_yellow_wall_side_tall", - "uvlock": true, - "y": 270 - }, - "when": { - "west": "tall" - } - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/stamping_platform.json b/src/generated/resources/assets/anvilcraft/blockstates/stamping_platform.json index cb3d639c88..873ddb6735 100644 --- a/src/generated/resources/assets/anvilcraft/blockstates/stamping_platform.json +++ b/src/generated/resources/assets/anvilcraft/blockstates/stamping_platform.json @@ -1,32 +1,17 @@ { "variants": { - "facing=east,waterlogged=false": { + "facing=east": { "model": "anvilcraft:block/stamping_platform", "y": 90 }, - "facing=east,waterlogged=true": { - "model": "anvilcraft:block/stamping_platform", - "y": 90 - }, - "facing=north,waterlogged=false": { + "facing=north": { "model": "anvilcraft:block/stamping_platform" }, - "facing=north,waterlogged=true": { - "model": "anvilcraft:block/stamping_platform" - }, - "facing=south,waterlogged=false": { + "facing=south": { "model": "anvilcraft:block/stamping_platform", "y": 180 }, - "facing=south,waterlogged=true": { - "model": "anvilcraft:block/stamping_platform", - "y": 180 - }, - "facing=west,waterlogged=false": { - "model": "anvilcraft:block/stamping_platform", - "y": 270 - }, - "facing=west,waterlogged=true": { + "facing=west": { "model": "anvilcraft:block/stamping_platform", "y": 270 } diff --git a/src/generated/resources/assets/anvilcraft/blockstates/sugar_block.json b/src/generated/resources/assets/anvilcraft/blockstates/sugar_block.json index 496bf0752d..700268b9fc 100644 --- a/src/generated/resources/assets/anvilcraft/blockstates/sugar_block.json +++ b/src/generated/resources/assets/anvilcraft/blockstates/sugar_block.json @@ -4,13 +4,13 @@ "model": "anvilcraft:block/sugar_block" }, "fragmentation_degree=1": { - "model": "anvilcraft:block/sugar_block1" + "model": "anvilcraft:block/sugar_block_1" }, "fragmentation_degree=2": { - "model": "anvilcraft:block/sugar_block2" + "model": "anvilcraft:block/sugar_block_2" }, "fragmentation_degree=3": { - "model": "anvilcraft:block/sugar_block3" + "model": "anvilcraft:block/sugar_block_3" } } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/white_chocolate_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/white_chocolate_slab.json index 8b3a0366f7..6fee097b81 100644 --- a/src/generated/resources/assets/anvilcraft/blockstates/white_chocolate_slab.json +++ b/src/generated/resources/assets/anvilcraft/blockstates/white_chocolate_slab.json @@ -4,7 +4,7 @@ "model": "anvilcraft:block/white_chocolate_slab" }, "type=double": { - "model": "anvilcraft:block/white_chocolate_block" + "model": "anvilcraft:block/white_chocolate" }, "type=top": { "model": "anvilcraft:block/white_chocolate_slab_top" diff --git a/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete.json new file mode 100644 index 0000000000..66e19b5599 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/white_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/white_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/white_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..3ad6c6c359 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/white_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/white_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/white_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..b0932676f8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/white_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/white_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_wall.json new file mode 100644 index 0000000000..007069b9eb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/white_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/white_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete.json new file mode 100644 index 0000000000..6432ce2c0c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete.json @@ -0,0 +1,13 @@ +{ + "variants": { + "half=bottom": { + "model": "anvilcraft:block/yellow_reinforced_concrete_bottom" + }, + "half=single": { + "model": "anvilcraft:block/yellow_reinforced_concrete" + }, + "half=top": { + "model": "anvilcraft:block/yellow_reinforced_concrete_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..b49ebc6814 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "anvilcraft:block/yellow_reinforced_concrete_slab" + }, + "type=double": { + "model": "anvilcraft:block/yellow_reinforced_concrete" + }, + "type=top": { + "model": "anvilcraft:block/yellow_reinforced_concrete_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..fbf6e717fa --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_stair.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair" + }, + "facing=east,half=top,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "anvilcraft:block/yellow_reinforced_concrete_stair", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_wall.json new file mode 100644 index 0000000000..05274d1675 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/blockstates/yellow_reinforced_concrete_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/abnormal_amulet.json b/src/generated/resources/assets/anvilcraft/items/abnormal_amulet.json new file mode 100644 index 0000000000..6d8b7d4e29 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/abnormal_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/abnormal_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/acceleration_ring.json b/src/generated/resources/assets/anvilcraft/items/acceleration_ring.json new file mode 100644 index 0000000000..1125125cdf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/acceleration_ring.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/acceleration_ring" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/activator_sliding_rail.json b/src/generated/resources/assets/anvilcraft/items/activator_sliding_rail.json new file mode 100644 index 0000000000..cfde81d585 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/activator_sliding_rail.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/activator_sliding_rail" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/active_silencer.json b/src/generated/resources/assets/anvilcraft/items/active_silencer.json new file mode 100644 index 0000000000..84746e8e1d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/active_silencer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/active_silencer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/advanced_comparator.json b/src/generated/resources/assets/anvilcraft/items/advanced_comparator.json new file mode 100644 index 0000000000..17f1acbb4d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/advanced_comparator.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/advanced_comparator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amber.json b/src/generated/resources/assets/anvilcraft/items/amber.json new file mode 100644 index 0000000000..e551c29763 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amber.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/amber" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amber_block.json b/src/generated/resources/assets/anvilcraft/items/amber_block.json new file mode 100644 index 0000000000..3a289802e1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amber_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/amber_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amethyst_axe.json b/src/generated/resources/assets/anvilcraft/items/amethyst_axe.json new file mode 100644 index 0000000000..d3448223c6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amethyst_axe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/amethyst_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amethyst_hoe.json b/src/generated/resources/assets/anvilcraft/items/amethyst_hoe.json new file mode 100644 index 0000000000..fc77eb475f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amethyst_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/amethyst_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amethyst_pickaxe.json b/src/generated/resources/assets/anvilcraft/items/amethyst_pickaxe.json new file mode 100644 index 0000000000..0e658aed0a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amethyst_pickaxe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/amethyst_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amethyst_shovel.json b/src/generated/resources/assets/anvilcraft/items/amethyst_shovel.json new file mode 100644 index 0000000000..a970846d00 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amethyst_shovel.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/amethyst_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amethyst_sword.json b/src/generated/resources/assets/anvilcraft/items/amethyst_sword.json new file mode 100644 index 0000000000..c6236e2cf8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amethyst_sword.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/amethyst_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/amulet_box.json b/src/generated/resources/assets/anvilcraft/items/amulet_box.json new file mode 100644 index 0000000000..c29eefa636 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/amulet_box.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/amulet_box" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/anvil_amulet.json b/src/generated/resources/assets/anvilcraft/items/anvil_amulet.json new file mode 100644 index 0000000000..d3086a367b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/anvil_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/anvil_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/anvil_hammer.json b/src/generated/resources/assets/anvilcraft/items/anvil_hammer.json new file mode 100644 index 0000000000..e4d1b02152 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/anvil_hammer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/anvil_hammer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/anvil_railgun.json b/src/generated/resources/assets/anvilcraft/items/anvil_railgun.json new file mode 100644 index 0000000000..5b9ccc882f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/anvil_railgun.json @@ -0,0 +1,19 @@ +{ + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:model", + "model": "anvilcraft:item/anvil_railgun" + }, + "on_true": { + "type": "minecraft:model", + "model": "anvilcraft:item/anvil_railgun_exhausted" + }, + "predicate": "anvilcraft:integer_component", + "property": "minecraft:component", + "value": { + "type": "anvilcraft:stored_energy", + "value": 0 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/arrow.json b/src/generated/resources/assets/anvilcraft/items/arrow.json new file mode 100644 index 0000000000..5acaff4efc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/arrow.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/arrow" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/batch_crafter.json b/src/generated/resources/assets/anvilcraft/items/batch_crafter.json new file mode 100644 index 0000000000..5e85f1fa7a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/batch_crafter.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/batch_crafter" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/batch_cutter.json b/src/generated/resources/assets/anvilcraft/items/batch_cutter.json new file mode 100644 index 0000000000..443e372b47 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/batch_cutter.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/batch_cutter" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/beef_mushroom_stew.json b/src/generated/resources/assets/anvilcraft/items/beef_mushroom_stew.json new file mode 100644 index 0000000000..0d90b378f7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/beef_mushroom_stew.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/beef_mushroom_stew" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/berry_cake_block.json b/src/generated/resources/assets/anvilcraft/items/berry_cake_block.json new file mode 100644 index 0000000000..4ba9ef3e1d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/berry_cake_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/berry_cake_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/berry_cream_block.json b/src/generated/resources/assets/anvilcraft/items/berry_cream_block.json new file mode 100644 index 0000000000..3592a58414 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/berry_cream_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/berry_cream_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/black_cement_bucket.json new file mode 100644 index 0000000000..8eba74964c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:black_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_chocolate_block.json b/src/generated/resources/assets/anvilcraft/items/black_chocolate_block.json new file mode 100644 index 0000000000..5f3091cf49 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_chocolate_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_chocolate_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_chocolate_slab.json b/src/generated/resources/assets/anvilcraft/items/black_chocolate_slab.json new file mode 100644 index 0000000000..e988fc071d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_chocolate_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_chocolate_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_chocolate_stairs.json b/src/generated/resources/assets/anvilcraft/items/black_chocolate_stairs.json new file mode 100644 index 0000000000..086ff3faf4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_chocolate_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_chocolate_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_hole.json b/src/generated/resources/assets/anvilcraft/items/black_hole.json new file mode 100644 index 0000000000..062666638d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_hole.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_hole" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete.json new file mode 100644 index 0000000000..3fd837e3ca --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..280f6dfd8f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..c4c9362ed0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_wall.json new file mode 100644 index 0000000000..d3f3165d96 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/black_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/black_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/block_comparator.json b/src/generated/resources/assets/anvilcraft/items/block_comparator.json new file mode 100644 index 0000000000..c84522f005 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/block_comparator.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/block_comparator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/block_devourer.json b/src/generated/resources/assets/anvilcraft/items/block_devourer.json new file mode 100644 index 0000000000..6f58245bed --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/block_devourer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/block_devourer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/block_placer.json b/src/generated/resources/assets/anvilcraft/items/block_placer.json new file mode 100644 index 0000000000..763fdceca0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/block_placer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/block_placer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/blue_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/blue_cement_bucket.json new file mode 100644 index 0000000000..2281a9a702 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/blue_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:blue_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete.json new file mode 100644 index 0000000000..77fb890ae6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..5fc2c79e92 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/blue_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..5e6d12bcb7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/blue_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..42dde903fe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/blue_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/blue_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brass_block.json b/src/generated/resources/assets/anvilcraft/items/brass_block.json new file mode 100644 index 0000000000..947d2a3548 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brass_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/brass_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brass_ingot.json b/src/generated/resources/assets/anvilcraft/items/brass_ingot.json new file mode 100644 index 0000000000..20c1121988 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brass_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/brass_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brass_nugget.json b/src/generated/resources/assets/anvilcraft/items/brass_nugget.json new file mode 100644 index 0000000000..ad270a1d86 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brass_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/brass_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brass_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/brass_pressure_plate.json new file mode 100644 index 0000000000..2bb251d39d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brass_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/brass_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/bronze_block.json b/src/generated/resources/assets/anvilcraft/items/bronze_block.json new file mode 100644 index 0000000000..87062d04bf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/bronze_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/bronze_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/bronze_ingot.json b/src/generated/resources/assets/anvilcraft/items/bronze_ingot.json new file mode 100644 index 0000000000..8769f6974e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/bronze_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/bronze_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/bronze_nugget.json b/src/generated/resources/assets/anvilcraft/items/bronze_nugget.json new file mode 100644 index 0000000000..05773c85cb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/bronze_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/bronze_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/bronze_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/bronze_pressure_plate.json new file mode 100644 index 0000000000..d2a3fea5e6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/bronze_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/bronze_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brown_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/brown_cement_bucket.json new file mode 100644 index 0000000000..c4c1fbf44a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brown_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:brown_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete.json new file mode 100644 index 0000000000..0b097714a2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/brown_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..801ea5f465 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/brown_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..5233718ed3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/brown_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_wall.json new file mode 100644 index 0000000000..31a2481c97 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/brown_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/brown_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cake_base_block.json b/src/generated/resources/assets/anvilcraft/items/cake_base_block.json new file mode 100644 index 0000000000..d52dbc0b9d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cake_base_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cake_base_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cake_block.json b/src/generated/resources/assets/anvilcraft/items/cake_block.json new file mode 100644 index 0000000000..0b77f2d4c7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cake_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cake_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/canned_food.json b/src/generated/resources/assets/anvilcraft/items/canned_food.json new file mode 100644 index 0000000000..0fc9f936cc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/canned_food.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/canned_food" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/capacitor.json b/src/generated/resources/assets/anvilcraft/items/capacitor.json new file mode 100644 index 0000000000..32e7baf86c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/capacitor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/capacitor" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/capacitor_empty.json b/src/generated/resources/assets/anvilcraft/items/capacitor_empty.json new file mode 100644 index 0000000000..51f78bdb1e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/capacitor_empty.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/capacitor_empty" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cat_amulet.json b/src/generated/resources/assets/anvilcraft/items/cat_amulet.json new file mode 100644 index 0000000000..ef1dda1c24 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cat_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/cat_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil.json b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil.json new file mode 100644 index 0000000000..7363e60c3b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/celestial_forging_anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_amplifier.json b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_amplifier.json new file mode 100644 index 0000000000..c49b3ce630 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_amplifier.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/celestial_forging_anvil_amplifier" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_fluid_interface.json b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_fluid_interface.json new file mode 100644 index 0000000000..cc36310245 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_fluid_interface.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/celestial_forging_anvil_fluid_interface" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_laser_interface.json b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_laser_interface.json new file mode 100644 index 0000000000..465c515915 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_laser_interface.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/celestial_forging_anvil_laser_interface" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_logistics_interface.json b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_logistics_interface.json new file mode 100644 index 0000000000..a15e71e4f8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/celestial_forging_anvil_logistics_interface.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/celestial_forging_anvil_logistics_interface" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/charge_collector.json b/src/generated/resources/assets/anvilcraft/items/charge_collector.json new file mode 100644 index 0000000000..1271558618 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/charge_collector.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/charge_collector" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/charged_neutronium_ingot.json b/src/generated/resources/assets/anvilcraft/items/charged_neutronium_ingot.json new file mode 100644 index 0000000000..6d49a930cb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/charged_neutronium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/charged_neutronium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/charger.json b/src/generated/resources/assets/anvilcraft/items/charger.json new file mode 100644 index 0000000000..0a879d83d1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/charger.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/charger" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate.json b/src/generated/resources/assets/anvilcraft/items/chocolate.json new file mode 100644 index 0000000000..e0cb3fe5a4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/chocolate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_black.json b/src/generated/resources/assets/anvilcraft/items/chocolate_black.json new file mode 100644 index 0000000000..4d4e6a3351 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate_black.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/chocolate_black" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_block.json b/src/generated/resources/assets/anvilcraft/items/chocolate_block.json new file mode 100644 index 0000000000..93b149174f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/chocolate_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_cake_block.json b/src/generated/resources/assets/anvilcraft/items/chocolate_cake_block.json new file mode 100644 index 0000000000..9f07b87965 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate_cake_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/chocolate_cake_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_cream_block.json b/src/generated/resources/assets/anvilcraft/items/chocolate_cream_block.json new file mode 100644 index 0000000000..f65cf7e373 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate_cream_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/chocolate_cream_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_slab.json b/src/generated/resources/assets/anvilcraft/items/chocolate_slab.json new file mode 100644 index 0000000000..58e1dd0c31 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/chocolate_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_stairs.json b/src/generated/resources/assets/anvilcraft/items/chocolate_stairs.json new file mode 100644 index 0000000000..666722fdc8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/chocolate_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_white.json b/src/generated/resources/assets/anvilcraft/items/chocolate_white.json new file mode 100644 index 0000000000..b1945813db --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chocolate_white.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/chocolate_white" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chromatic_stone.json b/src/generated/resources/assets/anvilcraft/items/chromatic_stone.json new file mode 100644 index 0000000000..5facdc3102 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chromatic_stone.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/chromatic_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chute.json b/src/generated/resources/assets/anvilcraft/items/chute.json new file mode 100644 index 0000000000..0805d76e42 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/chute.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/chute" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cinerite.json b/src/generated/resources/assets/anvilcraft/items/cinerite.json new file mode 100644 index 0000000000..fa1a33a0e4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cinerite.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cinerite" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/circuit_board.json b/src/generated/resources/assets/anvilcraft/items/circuit_board.json new file mode 100644 index 0000000000..440b395f19 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/circuit_board.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/circuit_board" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cocoa_butter.json b/src/generated/resources/assets/anvilcraft/items/cocoa_butter.json new file mode 100644 index 0000000000..502e94828e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cocoa_butter.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/cocoa_butter" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cocoa_liquor.json b/src/generated/resources/assets/anvilcraft/items/cocoa_liquor.json new file mode 100644 index 0000000000..765fd8a3c9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cocoa_liquor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/cocoa_liquor" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cocoa_powder.json b/src/generated/resources/assets/anvilcraft/items/cocoa_powder.json new file mode 100644 index 0000000000..e46d7ef99d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cocoa_powder.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/cocoa_powder" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/comrade_amulet.json b/src/generated/resources/assets/anvilcraft/items/comrade_amulet.json new file mode 100644 index 0000000000..27fc90ffb8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/comrade_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/comrade_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/confined_energy_anvilon.json b/src/generated/resources/assets/anvilcraft/items/confined_energy_anvilon.json new file mode 100644 index 0000000000..fa86ee1ca4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/confined_energy_anvilon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/confined_energy_anvilon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/confined_mass_anvilon.json b/src/generated/resources/assets/anvilcraft/items/confined_mass_anvilon.json new file mode 100644 index 0000000000..a229f1e3e9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/confined_mass_anvilon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/confined_mass_anvilon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/confined_neutronium_ingot.json b/src/generated/resources/assets/anvilcraft/items/confined_neutronium_ingot.json new file mode 100644 index 0000000000..6e02e64dae --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/confined_neutronium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/confined_neutronium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/confined_space_anvilon.json b/src/generated/resources/assets/anvilcraft/items/confined_space_anvilon.json new file mode 100644 index 0000000000..30548171d3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/confined_space_anvilon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/confined_space_anvilon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/confined_time_anvilon.json b/src/generated/resources/assets/anvilcraft/items/confined_time_anvilon.json new file mode 100644 index 0000000000..4d72744808 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/confined_time_anvilon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/confined_time_anvilon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/confinement_chamber.json b/src/generated/resources/assets/anvilcraft/items/confinement_chamber.json new file mode 100644 index 0000000000..aa16200b19 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/confinement_chamber.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/confinement_chamber" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/controllable_sand.json b/src/generated/resources/assets/anvilcraft/items/controllable_sand.json new file mode 100644 index 0000000000..7efe4b1092 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/controllable_sand.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/controllable_sand" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/copper_nugget.json b/src/generated/resources/assets/anvilcraft/items/copper_nugget.json new file mode 100644 index 0000000000..7194b18ea7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/copper_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/copper_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/copper_pressure_plate.json new file mode 100644 index 0000000000..be2ab71600 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/copper_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/copper_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/corrupted_beacon.json b/src/generated/resources/assets/anvilcraft/items/corrupted_beacon.json new file mode 100644 index 0000000000..bd3b774197 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/corrupted_beacon.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/corrupted_beacon" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/crab_claw.json b/src/generated/resources/assets/anvilcraft/items/crab_claw.json new file mode 100644 index 0000000000..24ebdb28fa --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/crab_claw.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/crab_claw" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/crab_trap.json b/src/generated/resources/assets/anvilcraft/items/crab_trap.json new file mode 100644 index 0000000000..a11dbe6fbd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/crab_trap.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/crab_trap" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cream.json b/src/generated/resources/assets/anvilcraft/items/cream.json new file mode 100644 index 0000000000..602f23674b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cream.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/cream" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cream_block.json b/src/generated/resources/assets/anvilcraft/items/cream_block.json new file mode 100644 index 0000000000..341c6e22a6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cream_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cream_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/creamy_bread_roll.json b/src/generated/resources/assets/anvilcraft/items/creamy_bread_roll.json new file mode 100644 index 0000000000..c3cd88bf6c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/creamy_bread_roll.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/creamy_bread_roll" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/creative_generator.json b/src/generated/resources/assets/anvilcraft/items/creative_generator.json new file mode 100644 index 0000000000..6a9d276a52 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/creative_generator.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/creative_generator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/crushing_table.json b/src/generated/resources/assets/anvilcraft/items/crushing_table.json new file mode 100644 index 0000000000..c2878b210a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/crushing_table.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/crushing_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cursed_gold_block.json b/src/generated/resources/assets/anvilcraft/items/cursed_gold_block.json new file mode 100644 index 0000000000..2035033edd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cursed_gold_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cursed_gold_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cursed_gold_ingot.json b/src/generated/resources/assets/anvilcraft/items/cursed_gold_ingot.json new file mode 100644 index 0000000000..7883559efd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cursed_gold_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/cursed_gold_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cursed_gold_nugget.json b/src/generated/resources/assets/anvilcraft/items/cursed_gold_nugget.json new file mode 100644 index 0000000000..412967abdc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cursed_gold_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/cursed_gold_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_block.json b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_block.json new file mode 100644 index 0000000000..3ba4a68152 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_ember_metal_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_pillar.json b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_pillar.json new file mode 100644 index 0000000000..d2dc6893e1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_ember_metal_pillar" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_slab.json b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_slab.json new file mode 100644 index 0000000000..9db038a1a8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_ember_metal_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_stairs.json b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_stairs.json new file mode 100644 index 0000000000..fe70b3bd54 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_ember_metal_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_ember_metal_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_flint_block.json b/src/generated/resources/assets/anvilcraft/items/cut_flint_block.json new file mode 100644 index 0000000000..a9e2c35d54 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_flint_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_flint_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_flint_pillar.json b/src/generated/resources/assets/anvilcraft/items/cut_flint_pillar.json new file mode 100644 index 0000000000..57fbfb6cf9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_flint_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_flint_pillar" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_flint_slab.json b/src/generated/resources/assets/anvilcraft/items/cut_flint_slab.json new file mode 100644 index 0000000000..4f2e219e15 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_flint_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_flint_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_flint_stairs.json b/src/generated/resources/assets/anvilcraft/items/cut_flint_stairs.json new file mode 100644 index 0000000000..4f0768ca39 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_flint_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_flint_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_block.json b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_block.json new file mode 100644 index 0000000000..5398722de1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_frost_metal_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_pillar.json b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_pillar.json new file mode 100644 index 0000000000..520d9cd1e7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_frost_metal_pillar" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_slab.json b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_slab.json new file mode 100644 index 0000000000..87a062f48e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_frost_metal_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_stairs.json b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_stairs.json new file mode 100644 index 0000000000..96156e02c7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_frost_metal_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_frost_metal_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_block.json b/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_block.json new file mode 100644 index 0000000000..2c8ac37cfb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_heavy_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_slab.json b/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_slab.json new file mode 100644 index 0000000000..2585d05e75 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_heavy_iron_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_stairs.json b/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_stairs.json new file mode 100644 index 0000000000..52a7003c5b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_heavy_iron_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_heavy_iron_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_block.json b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_block.json new file mode 100644 index 0000000000..d56a54fb8f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_royal_steel_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_pillar.json b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_pillar.json new file mode 100644 index 0000000000..4e73753fb5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_pillar.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_royal_steel_pillar" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_slab.json b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_slab.json new file mode 100644 index 0000000000..c51522789d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_royal_steel_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_stairs.json b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_stairs.json new file mode 100644 index 0000000000..c4976dde1e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cut_royal_steel_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cut_royal_steel_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cyan_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/cyan_cement_bucket.json new file mode 100644 index 0000000000..f01b1995a3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cyan_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:cyan_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete.json new file mode 100644 index 0000000000..3c5017203e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cyan_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..50216c73f6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cyan_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..d2bbc6c269 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cyan_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_wall.json new file mode 100644 index 0000000000..af16b23a25 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/cyan_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/cyan_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deepslate_lead_ore.json b/src/generated/resources/assets/anvilcraft/items/deepslate_lead_ore.json new file mode 100644 index 0000000000..0d0da391d8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deepslate_lead_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deepslate_lead_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deepslate_silver_ore.json b/src/generated/resources/assets/anvilcraft/items/deepslate_silver_ore.json new file mode 100644 index 0000000000..8c2f55de5d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deepslate_silver_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deepslate_silver_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deepslate_tin_ore.json b/src/generated/resources/assets/anvilcraft/items/deepslate_tin_ore.json new file mode 100644 index 0000000000..215b1d2a55 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deepslate_tin_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deepslate_tin_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deepslate_titanium_ore.json b/src/generated/resources/assets/anvilcraft/items/deepslate_titanium_ore.json new file mode 100644 index 0000000000..d7c6b42c0f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deepslate_titanium_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deepslate_titanium_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deepslate_tungsten_ore.json b/src/generated/resources/assets/anvilcraft/items/deepslate_tungsten_ore.json new file mode 100644 index 0000000000..d77c31e0d1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deepslate_tungsten_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deepslate_tungsten_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deepslate_uranium_ore.json b/src/generated/resources/assets/anvilcraft/items/deepslate_uranium_ore.json new file mode 100644 index 0000000000..5c4294fd5a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deepslate_uranium_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deepslate_uranium_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deepslate_zinc_ore.json b/src/generated/resources/assets/anvilcraft/items/deepslate_zinc_ore.json new file mode 100644 index 0000000000..399d6fa86a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deepslate_zinc_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deepslate_zinc_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deflection_ring.json b/src/generated/resources/assets/anvilcraft/items/deflection_ring.json new file mode 100644 index 0000000000..b683c6dc9e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deflection_ring.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/deflection_ring" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/deformation_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/deformation_smithing_template.json new file mode 100644 index 0000000000..393ba688de --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/deformation_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/deformation_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/detector_sliding_rail.json b/src/generated/resources/assets/anvilcraft/items/detector_sliding_rail.json new file mode 100644 index 0000000000..d137b67b60 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/detector_sliding_rail.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/detector_sliding_rail" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/discharger.json b/src/generated/resources/assets/anvilcraft/items/discharger.json new file mode 100644 index 0000000000..cc0f79e063 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/discharger.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/discharger" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/disk.json b/src/generated/resources/assets/anvilcraft/items/disk.json new file mode 100644 index 0000000000..facb665f4f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/disk.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/disk" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/dog_amulet.json b/src/generated/resources/assets/anvilcraft/items/dog_amulet.json new file mode 100644 index 0000000000..f89e5441fa --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/dog_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/dog_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/dough.json b/src/generated/resources/assets/anvilcraft/items/dough.json new file mode 100644 index 0000000000..33ed249239 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/dough.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/dough" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/dragon_rod.json b/src/generated/resources/assets/anvilcraft/items/dragon_rod.json new file mode 100644 index 0000000000..36d9c6c5a2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/dragon_rod.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/dragon_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/earth_core_shard.json b/src/generated/resources/assets/anvilcraft/items/earth_core_shard.json new file mode 100644 index 0000000000..4df781a1b7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/earth_core_shard.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/earth_core_shard" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/earth_core_shard_block.json b/src/generated/resources/assets/anvilcraft/items/earth_core_shard_block.json new file mode 100644 index 0000000000..f7d2dc79c7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/earth_core_shard_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/earth_core_shard_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/earth_core_shard_ore.json b/src/generated/resources/assets/anvilcraft/items/earth_core_shard_ore.json new file mode 100644 index 0000000000..396229769c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/earth_core_shard_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/earth_core_shard_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/eight_to_one_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/eight_to_one_smithing_template.json new file mode 100644 index 0000000000..063f218dcf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/eight_to_one_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/eight_to_one_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_anvil.json b/src/generated/resources/assets/anvilcraft/items/ember_anvil.json new file mode 100644 index 0000000000..a45e784a32 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_anvil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ember_anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_anvil_hammer.json b/src/generated/resources/assets/anvilcraft/items/ember_anvil_hammer.json new file mode 100644 index 0000000000..6497620992 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_anvil_hammer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_anvil_hammer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_dragon_rod.json b/src/generated/resources/assets/anvilcraft/items/ember_dragon_rod.json new file mode 100644 index 0000000000..07cba9ad6f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_dragon_rod.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_dragon_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_glass.json b/src/generated/resources/assets/anvilcraft/items/ember_glass.json new file mode 100644 index 0000000000..729d093132 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_glass.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ember_glass" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_grindstone.json b/src/generated/resources/assets/anvilcraft/items/ember_grindstone.json new file mode 100644 index 0000000000..01a4e67226 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_grindstone.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ember_grindstone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_axe.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_axe.json new file mode 100644 index 0000000000..149c2ecde3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_axe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_block.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_block.json new file mode 100644 index 0000000000..da2665b329 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ember_metal_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_heavy_halberd.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_heavy_halberd.json new file mode 100644 index 0000000000..49e51a5463 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_heavy_halberd.json @@ -0,0 +1,14 @@ +{ + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_heavy_halberd" + }, + "on_true": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_heavy_halberd_throwing" + }, + "property": "minecraft:using_item" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_hoe.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_hoe.json new file mode 100644 index 0000000000..e995360daf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_ingot.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_ingot.json new file mode 100644 index 0000000000..2f96d85642 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_nugget.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_nugget.json new file mode 100644 index 0000000000..3b3b58b0bd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_pickaxe.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_pickaxe.json new file mode 100644 index 0000000000..5f2645d174 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_pickaxe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_resonator.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_resonator.json new file mode 100644 index 0000000000..60fcc4ff16 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_resonator.json @@ -0,0 +1,41 @@ +{ + "model": { + "type": "minecraft:select", + "cases": [ + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_resonance_axe" + }, + "when": "axe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_resonance_hoe" + }, + "when": "hoe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_resonance_pickaxe" + }, + "when": "pickaxe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_resonance_shovel" + }, + "when": "shovel" + } + ], + "component": "anvilcraft:resonate_mode", + "fallback": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_resonator" + }, + "property": "minecraft:component" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_shovel.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_shovel.json new file mode 100644 index 0000000000..e8288b0a00 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_shovel.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_sword.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_sword.json new file mode 100644 index 0000000000..769b247521 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_sword.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_metal_upgrade_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/ember_metal_upgrade_smithing_template.json new file mode 100644 index 0000000000..d1100390c6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_metal_upgrade_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ember_metal_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ember_smithing_table.json b/src/generated/resources/assets/anvilcraft/items/ember_smithing_table.json new file mode 100644 index 0000000000..a2609d79bc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ember_smithing_table.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ember_smithing_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/emerald_amulet.json b/src/generated/resources/assets/anvilcraft/items/emerald_amulet.json new file mode 100644 index 0000000000..2bb77f104d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/emerald_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/emerald_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/end_dust.json b/src/generated/resources/assets/anvilcraft/items/end_dust.json new file mode 100644 index 0000000000..072a6e1c86 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/end_dust.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/end_dust" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/energy_weapon_platform.json b/src/generated/resources/assets/anvilcraft/items/energy_weapon_platform.json new file mode 100644 index 0000000000..d1a60d2117 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/energy_weapon_platform.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/energy_weapon_platform" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/exp_bucket.json b/src/generated/resources/assets/anvilcraft/items/exp_bucket.json new file mode 100644 index 0000000000..ad3b62c52d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/exp_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:exp_fluid", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/exp_gem.json b/src/generated/resources/assets/anvilcraft/items/exp_gem.json new file mode 100644 index 0000000000..d578f7a776 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/exp_gem.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/exp_gem" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/exp_gem_block.json b/src/generated/resources/assets/anvilcraft/items/exp_gem_block.json new file mode 100644 index 0000000000..a9f6249fd2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/exp_gem_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/exp_gem_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/exposed_copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/exposed_copper_pressure_plate.json new file mode 100644 index 0000000000..db443e4d2d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/exposed_copper_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/exposed_copper_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/feather_amulet.json b/src/generated/resources/assets/anvilcraft/items/feather_amulet.json new file mode 100644 index 0000000000..8862a541f8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/feather_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/feather_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ferrite_core_magnet_block.json b/src/generated/resources/assets/anvilcraft/items/ferrite_core_magnet_block.json new file mode 100644 index 0000000000..11c69fa96f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ferrite_core_magnet_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ferrite_core_magnet_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/filter.json b/src/generated/resources/assets/anvilcraft/items/filter.json new file mode 100644 index 0000000000..0c5e1d0a7f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/filter.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/filter" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/fish_tank.json b/src/generated/resources/assets/anvilcraft/items/fish_tank.json new file mode 100644 index 0000000000..e8e0c5d98c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/fish_tank.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/fish_tank" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/flint_block.json b/src/generated/resources/assets/anvilcraft/items/flint_block.json new file mode 100644 index 0000000000..44c29dd4a4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/flint_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/flint_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/flour.json b/src/generated/resources/assets/anvilcraft/items/flour.json new file mode 100644 index 0000000000..42ef167841 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/flour.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/flour" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/fluid_tank.json b/src/generated/resources/assets/anvilcraft/items/fluid_tank.json new file mode 100644 index 0000000000..6aeb5ea11f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/fluid_tank.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/fluid_tank" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/four_to_one_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/four_to_one_smithing_template.json new file mode 100644 index 0000000000..0711a08334 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/four_to_one_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/four_to_one_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_anvil.json b/src/generated/resources/assets/anvilcraft/items/frost_anvil.json new file mode 100644 index 0000000000..ca08c46f9c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_anvil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/frost_anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_glass.json b/src/generated/resources/assets/anvilcraft/items/frost_glass.json new file mode 100644 index 0000000000..05a2eb8b40 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_glass.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/frost_glass" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_grindstone.json b/src/generated/resources/assets/anvilcraft/items/frost_grindstone.json new file mode 100644 index 0000000000..36aa1cc252 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_grindstone.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/frost_grindstone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_axe.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_axe.json new file mode 100644 index 0000000000..f176baa391 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_axe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_block.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_block.json new file mode 100644 index 0000000000..6a8ac9aa9b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/frost_metal_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_heavy_halberd.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_heavy_halberd.json new file mode 100644 index 0000000000..d2048c77cd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_heavy_halberd.json @@ -0,0 +1,14 @@ +{ + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_heavy_halberd" + }, + "on_true": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_heavy_halberd_throwing" + }, + "property": "minecraft:using_item" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_hoe.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_hoe.json new file mode 100644 index 0000000000..5e45f27f37 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_ingot.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_ingot.json new file mode 100644 index 0000000000..6efa430756 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_nugget.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_nugget.json new file mode 100644 index 0000000000..ee8b24c989 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_pickaxe.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_pickaxe.json new file mode 100644 index 0000000000..8df8e7051e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_pickaxe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_resonator.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_resonator.json new file mode 100644 index 0000000000..308aceb97a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_resonator.json @@ -0,0 +1,41 @@ +{ + "model": { + "type": "minecraft:select", + "cases": [ + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_resonance_axe" + }, + "when": "axe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_resonance_hoe" + }, + "when": "hoe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_resonance_pickaxe" + }, + "when": "pickaxe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_resonance_shovel" + }, + "when": "shovel" + } + ], + "component": "anvilcraft:resonate_mode", + "fallback": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_resonator" + }, + "property": "minecraft:component" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_shovel.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_shovel.json new file mode 100644 index 0000000000..f6b570744c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_shovel.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_sword.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_sword.json new file mode 100644 index 0000000000..47f4b84255 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_sword.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_metal_upgrade_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/frost_metal_upgrade_smithing_template.json new file mode 100644 index 0000000000..4c1695edfa --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_metal_upgrade_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/frost_metal_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/frost_smithing_table.json b/src/generated/resources/assets/anvilcraft/items/frost_smithing_table.json new file mode 100644 index 0000000000..53c6f13023 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/frost_smithing_table.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/frost_smithing_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/gem_amulet.json b/src/generated/resources/assets/anvilcraft/items/gem_amulet.json new file mode 100644 index 0000000000..ea6e9da047 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/gem_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/gem_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/geode.json b/src/generated/resources/assets/anvilcraft/items/geode.json new file mode 100644 index 0000000000..788fe404ba --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/geode.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/geode" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/giant_anvil.json b/src/generated/resources/assets/anvilcraft/items/giant_anvil.json new file mode 100644 index 0000000000..a595224839 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/giant_anvil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/giant_anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/glowing_netherite_block.json b/src/generated/resources/assets/anvilcraft/items/glowing_netherite_block.json new file mode 100644 index 0000000000..2f4e2eedc6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/glowing_netherite_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/glowing_netherite_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/glowing_tungsten_block.json b/src/generated/resources/assets/anvilcraft/items/glowing_tungsten_block.json new file mode 100644 index 0000000000..72d7e70f0f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/glowing_tungsten_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/glowing_tungsten_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/gray_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/gray_cement_bucket.json new file mode 100644 index 0000000000..fca4bcfe7f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/gray_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:gray_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete.json new file mode 100644 index 0000000000..ec532a5001 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..11e7a298d9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/gray_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..ae0aa55b3c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/gray_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..61d8500b5e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/gray_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/gray_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/green_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/green_cement_bucket.json new file mode 100644 index 0000000000..04e2165400 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/green_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:green_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete.json new file mode 100644 index 0000000000..7e485a6171 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/green_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..c4b8f9bf96 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/green_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..b2807b0b46 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/green_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_wall.json new file mode 100644 index 0000000000..5ef2206f4d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/green_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/green_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/guide_book.json b/src/generated/resources/assets/anvilcraft/items/guide_book.json new file mode 100644 index 0000000000..dd02b7f130 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/guide_book.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/guide_book" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/gunpowder_block.json b/src/generated/resources/assets/anvilcraft/items/gunpowder_block.json new file mode 100644 index 0000000000..fedadbb629 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/gunpowder_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/gunpowder_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/hardend_resin.json b/src/generated/resources/assets/anvilcraft/items/hardend_resin.json new file mode 100644 index 0000000000..77bb889cc4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/hardend_resin.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/hardend_resin" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heat_collector.json b/src/generated/resources/assets/anvilcraft/items/heat_collector.json new file mode 100644 index 0000000000..a33d4b04c9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heat_collector.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heat_collector" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heated_netherite_block.json b/src/generated/resources/assets/anvilcraft/items/heated_netherite_block.json new file mode 100644 index 0000000000..73557da7c2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heated_netherite_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heated_netherite_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heated_tungsten_block.json b/src/generated/resources/assets/anvilcraft/items/heated_tungsten_block.json new file mode 100644 index 0000000000..292bf1791c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heated_tungsten_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heated_tungsten_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heater.json b/src/generated/resources/assets/anvilcraft/items/heater.json new file mode 100644 index 0000000000..32fb9e13ea --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heater.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heater" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_halberd_core.json b/src/generated/resources/assets/anvilcraft/items/heavy_halberd_core.json new file mode 100644 index 0000000000..a39d7c4333 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_halberd_core.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/heavy_halberd_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_iron_beam.json b/src/generated/resources/assets/anvilcraft/items/heavy_iron_beam.json new file mode 100644 index 0000000000..96e683f7fe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_iron_beam.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/heavy_iron_beam" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_iron_block.json b/src/generated/resources/assets/anvilcraft/items/heavy_iron_block.json new file mode 100644 index 0000000000..d547dc973d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_iron_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heavy_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_iron_column.json b/src/generated/resources/assets/anvilcraft/items/heavy_iron_column.json new file mode 100644 index 0000000000..3e405fc80e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_iron_column.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heavy_iron_column" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_iron_door.json b/src/generated/resources/assets/anvilcraft/items/heavy_iron_door.json new file mode 100644 index 0000000000..266db5a488 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_iron_door.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/heavy_iron_door" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_iron_plate.json b/src/generated/resources/assets/anvilcraft/items/heavy_iron_plate.json new file mode 100644 index 0000000000..6ae8639e71 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_iron_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heavy_iron_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_iron_trapdoor.json b/src/generated/resources/assets/anvilcraft/items/heavy_iron_trapdoor.json new file mode 100644 index 0000000000..2e158b7f22 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_iron_trapdoor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heavy_iron_trapdoor_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heavy_iron_wall.json b/src/generated/resources/assets/anvilcraft/items/heavy_iron_wall.json new file mode 100644 index 0000000000..c1f36c8106 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heavy_iron_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heavy_iron_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/heliostats.json b/src/generated/resources/assets/anvilcraft/items/heliostats.json new file mode 100644 index 0000000000..1524c8a1f2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/heliostats.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/heliostats" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/hollow_magnet_block.json b/src/generated/resources/assets/anvilcraft/items/hollow_magnet_block.json new file mode 100644 index 0000000000..48383580b4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/hollow_magnet_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/hollow_magnet_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/impact_pile.json b/src/generated/resources/assets/anvilcraft/items/impact_pile.json new file mode 100644 index 0000000000..1db2fded41 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/impact_pile.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/impact_pile" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/incandescent_netherite_block.json b/src/generated/resources/assets/anvilcraft/items/incandescent_netherite_block.json new file mode 100644 index 0000000000..2d8f0879c6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/incandescent_netherite_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/incandescent_netherite_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/incandescent_tungsten_block.json b/src/generated/resources/assets/anvilcraft/items/incandescent_tungsten_block.json new file mode 100644 index 0000000000..91d1c50d4f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/incandescent_tungsten_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/incandescent_tungsten_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/induction_light.json b/src/generated/resources/assets/anvilcraft/items/induction_light.json new file mode 100644 index 0000000000..9d8ccdd94a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/induction_light.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/induction_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ionocraft.json b/src/generated/resources/assets/anvilcraft/items/ionocraft.json new file mode 100644 index 0000000000..18997f6212 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ionocraft.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ionocraft" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ionocraft_backpack.json b/src/generated/resources/assets/anvilcraft/items/ionocraft_backpack.json new file mode 100644 index 0000000000..5a55d8fdae --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ionocraft_backpack.json @@ -0,0 +1,19 @@ +{ + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:model", + "model": "anvilcraft:item/ionocraft_backpack" + }, + "on_true": { + "type": "minecraft:model", + "model": "anvilcraft:item/ionocraft_backpack_exhausted" + }, + "predicate": "anvilcraft:integer_component", + "property": "minecraft:component", + "value": { + "type": "anvilcraft:flight_time", + "value": 0 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/item_collector.json b/src/generated/resources/assets/anvilcraft/items/item_collector.json new file mode 100644 index 0000000000..71d725cd1c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/item_collector.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/item_collector" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/item_detector.json b/src/generated/resources/assets/anvilcraft/items/item_detector.json new file mode 100644 index 0000000000..3b386cea96 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/item_detector.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/item_detector" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/jewelcrafting_table.json b/src/generated/resources/assets/anvilcraft/items/jewelcrafting_table.json new file mode 100644 index 0000000000..7e0f7b7f39 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/jewelcrafting_table.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/jewelcrafting_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/large_cake.json b/src/generated/resources/assets/anvilcraft/items/large_cake.json new file mode 100644 index 0000000000..344fd0421f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/large_cake.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/large_cake" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/large_fluid_tank.json b/src/generated/resources/assets/anvilcraft/items/large_fluid_tank.json new file mode 100644 index 0000000000..b8882a2a4f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/large_fluid_tank.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/large_fluid_tank" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/laser_receiver.json b/src/generated/resources/assets/anvilcraft/items/laser_receiver.json new file mode 100644 index 0000000000..c87112e092 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/laser_receiver.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/laser_receiver" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lead_block.json b/src/generated/resources/assets/anvilcraft/items/lead_block.json new file mode 100644 index 0000000000..7cb8cb01de --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lead_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/lead_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lead_ingot.json b/src/generated/resources/assets/anvilcraft/items/lead_ingot.json new file mode 100644 index 0000000000..2458d672cc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lead_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/lead_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lead_nugget.json b/src/generated/resources/assets/anvilcraft/items/lead_nugget.json new file mode 100644 index 0000000000..400b3f47f3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lead_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/lead_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lead_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/lead_pressure_plate.json new file mode 100644 index 0000000000..afb5109381 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lead_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/lead_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/levitation_powder.json b/src/generated/resources/assets/anvilcraft/items/levitation_powder.json new file mode 100644 index 0000000000..d8e56e3db8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/levitation_powder.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/levitation_powder" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/levitation_powder_block.json b/src/generated/resources/assets/anvilcraft/items/levitation_powder_block.json new file mode 100644 index 0000000000..ca33826568 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/levitation_powder_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/levitation_powder_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_blue_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/light_blue_cement_bucket.json new file mode 100644 index 0000000000..9bd215bebf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_blue_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:light_blue_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete.json new file mode 100644 index 0000000000..9093f3825c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..ee71478626 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_blue_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..ec1cc6c763 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_blue_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..3344f191ba --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_blue_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_blue_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_gray_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/light_gray_cement_bucket.json new file mode 100644 index 0000000000..2a54e45e92 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_gray_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:light_gray_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete.json new file mode 100644 index 0000000000..27723804e7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..88a98b75ff --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_gray_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..bc92d0a4ec --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_gray_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..c366ed6252 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/light_gray_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/light_gray_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lime_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/lime_cement_bucket.json new file mode 100644 index 0000000000..9e982de29a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lime_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:lime_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lime_powder.json b/src/generated/resources/assets/anvilcraft/items/lime_powder.json new file mode 100644 index 0000000000..ca6eee2b12 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lime_powder.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/lime_powder" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete.json new file mode 100644 index 0000000000..1cdb741a40 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/lime_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2d52db487a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/lime_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8b5a02faff --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/lime_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_wall.json new file mode 100644 index 0000000000..86afbcfca7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/lime_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/lime_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/load_monitor.json b/src/generated/resources/assets/anvilcraft/items/load_monitor.json new file mode 100644 index 0000000000..d8cd9414a6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/load_monitor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/load_monitor_0" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magenta_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/magenta_cement_bucket.json new file mode 100644 index 0000000000..fb7c94b148 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magenta_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:magenta_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete.json new file mode 100644 index 0000000000..2a182bd406 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/magenta_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..c933549afb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/magenta_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..beea1b55e7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/magenta_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_wall.json new file mode 100644 index 0000000000..22b801a56b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magenta_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/magenta_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magnet.json b/src/generated/resources/assets/anvilcraft/items/magnet.json new file mode 100644 index 0000000000..a53cd7d4bd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magnet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/magnet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magnet_block.json b/src/generated/resources/assets/anvilcraft/items/magnet_block.json new file mode 100644 index 0000000000..50790d0472 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magnet_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/magnet_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magnet_ingot.json b/src/generated/resources/assets/anvilcraft/items/magnet_ingot.json new file mode 100644 index 0000000000..009280ac27 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magnet_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/magnet_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magnetic_chute.json b/src/generated/resources/assets/anvilcraft/items/magnetic_chute.json new file mode 100644 index 0000000000..e6726f45fe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magnetic_chute.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/magnetic_chute" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/magnetoelectric_core.json b/src/generated/resources/assets/anvilcraft/items/magnetoelectric_core.json new file mode 100644 index 0000000000..232d4a74db --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/magnetoelectric_core.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/magnetoelectric_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/melt_gem_bucket.json b/src/generated/resources/assets/anvilcraft/items/melt_gem_bucket.json new file mode 100644 index 0000000000..cde12c71a1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/melt_gem_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:melt_gem", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/menger_sponge.json b/src/generated/resources/assets/anvilcraft/items/menger_sponge.json new file mode 100644 index 0000000000..d1cbd8959e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/menger_sponge.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/menger_sponge" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/mineral_fountain.json b/src/generated/resources/assets/anvilcraft/items/mineral_fountain.json new file mode 100644 index 0000000000..953b36ebeb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/mineral_fountain.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/mineral_fountain" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/mob_amber_block.json b/src/generated/resources/assets/anvilcraft/items/mob_amber_block.json new file mode 100644 index 0000000000..7fe73e1712 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/mob_amber_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/mob_amber_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/multiphase_matter.json b/src/generated/resources/assets/anvilcraft/items/multiphase_matter.json new file mode 100644 index 0000000000..47771dab25 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/multiphase_matter.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multiphase_matter" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/multiphase_matter_block.json b/src/generated/resources/assets/anvilcraft/items/multiphase_matter_block.json new file mode 100644 index 0000000000..cec961b73b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/multiphase_matter_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/multiphase_matter_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/multiphase_transcendium.json b/src/generated/resources/assets/anvilcraft/items/multiphase_transcendium.json new file mode 100644 index 0000000000..47d6b2fe8d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/multiphase_transcendium.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multiphase_transcendium" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/multitool.json b/src/generated/resources/assets/anvilcraft/items/multitool.json new file mode 100644 index 0000000000..9a548a164f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/multitool.json @@ -0,0 +1,77 @@ +{ + "model": { + "type": "minecraft:select", + "cases": [ + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_brush" + }, + "when": "brush" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_carrot_on_a_stick" + }, + "when": "carrot_on_a_stick" + }, + { + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_fishing_rod" + }, + "on_true": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_fishing_rod_cast" + }, + "property": "minecraft:fishing_rod/cast" + }, + "when": "fishing_rod" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_flint_and_steel" + }, + "when": "flint_and_steel" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_magnet" + }, + "when": "magnet" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_shears" + }, + "when": "shears" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_spyglass" + }, + "when": "spyglass" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool_warped_fungus_on_a_stick" + }, + "when": "warped_fungus_on_a_stick" + } + ], + "component": "anvilcraft:multitool_mode", + "fallback": { + "type": "minecraft:model", + "model": "anvilcraft:item/multitool" + }, + "property": "minecraft:component" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/nature_amulet.json b/src/generated/resources/assets/anvilcraft/items/nature_amulet.json new file mode 100644 index 0000000000..64df8d39a0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/nature_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/nature_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/negative_matter.json b/src/generated/resources/assets/anvilcraft/items/negative_matter.json new file mode 100644 index 0000000000..49699dbbe5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/negative_matter.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/negative_matter" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/negative_matter_block.json b/src/generated/resources/assets/anvilcraft/items/negative_matter_block.json new file mode 100644 index 0000000000..51b419a50a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/negative_matter_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/negative_matter_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/negative_matter_nugget.json b/src/generated/resources/assets/anvilcraft/items/negative_matter_nugget.json new file mode 100644 index 0000000000..1ec2291292 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/negative_matter_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/negative_matter_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/neoforge.json b/src/generated/resources/assets/anvilcraft/items/neoforge.json new file mode 100644 index 0000000000..c0d111631e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/neoforge.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/neoforge" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/nesting_shulker_box.json b/src/generated/resources/assets/anvilcraft/items/nesting_shulker_box.json new file mode 100644 index 0000000000..ba5394a4ab --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/nesting_shulker_box.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/nesting_shulker_box" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/nether_dust.json b/src/generated/resources/assets/anvilcraft/items/nether_dust.json new file mode 100644 index 0000000000..c54db835eb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/nether_dust.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/nether_dust" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/netherite_crystal_nucleus.json b/src/generated/resources/assets/anvilcraft/items/netherite_crystal_nucleus.json new file mode 100644 index 0000000000..6ae1168d41 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/netherite_crystal_nucleus.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/netherite_crystal_nucleus" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/neutron_irradiator.json b/src/generated/resources/assets/anvilcraft/items/neutron_irradiator.json new file mode 100644 index 0000000000..c4766c4c26 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/neutron_irradiator.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/neutron_irradiator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/neutronium_ingot.json b/src/generated/resources/assets/anvilcraft/items/neutronium_ingot.json new file mode 100644 index 0000000000..2832add10b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/neutronium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/neutronium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/oil_bucket.json b/src/generated/resources/assets/anvilcraft/items/oil_bucket.json new file mode 100644 index 0000000000..7d2b4ec749 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/oil_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:oil", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/orange_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/orange_cement_bucket.json new file mode 100644 index 0000000000..e505e5859b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/orange_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:orange_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete.json new file mode 100644 index 0000000000..5290257dad --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/orange_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..4acf2b49c2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/orange_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..e9888e796a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/orange_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_wall.json new file mode 100644 index 0000000000..894bc925eb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/orange_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/orange_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/over_nesting_shulker_box.json b/src/generated/resources/assets/anvilcraft/items/over_nesting_shulker_box.json new file mode 100644 index 0000000000..0c9b78f68c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/over_nesting_shulker_box.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/over_nesting_shulker_box" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/overheated_ember_metal_block.json b/src/generated/resources/assets/anvilcraft/items/overheated_ember_metal_block.json new file mode 100644 index 0000000000..9b7e62de7f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/overheated_ember_metal_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/overheated_ember_metal_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/overseer.json b/src/generated/resources/assets/anvilcraft/items/overseer.json new file mode 100644 index 0000000000..98f7b4a2b5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/overseer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/overseer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/oxidized_copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/oxidized_copper_pressure_plate.json new file mode 100644 index 0000000000..edb0ecab29 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/oxidized_copper_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/oxidized_copper_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/permutation_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/permutation_smithing_template.json new file mode 100644 index 0000000000..6d061bfd81 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/permutation_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/permutation_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/piezoelectric_crystal.json b/src/generated/resources/assets/anvilcraft/items/piezoelectric_crystal.json new file mode 100644 index 0000000000..2273762003 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/piezoelectric_crystal.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/piezoelectric_crystal" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pill.json b/src/generated/resources/assets/anvilcraft/items/pill.json new file mode 100644 index 0000000000..dd6fee9c4b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pill.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/pill" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pill_box.json b/src/generated/resources/assets/anvilcraft/items/pill_box.json new file mode 100644 index 0000000000..4b12d33e1e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pill_box.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/pill_box" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pink_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/pink_cement_bucket.json new file mode 100644 index 0000000000..077c2c39d5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pink_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:pink_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete.json new file mode 100644 index 0000000000..e728733ec8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/pink_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..9a684e21f5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/pink_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..6cdcc362cd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/pink_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_wall.json new file mode 100644 index 0000000000..ab89acd172 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pink_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/pink_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/plutonium_block.json b/src/generated/resources/assets/anvilcraft/items/plutonium_block.json new file mode 100644 index 0000000000..cc5befc7d9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/plutonium_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/plutonium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/plutonium_ingot.json b/src/generated/resources/assets/anvilcraft/items/plutonium_ingot.json new file mode 100644 index 0000000000..b49384eca0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/plutonium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/plutonium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/plutonium_nugget.json b/src/generated/resources/assets/anvilcraft/items/plutonium_nugget.json new file mode 100644 index 0000000000..67e5563a9f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/plutonium_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/plutonium_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/plutonium_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/plutonium_pressure_plate.json new file mode 100644 index 0000000000..1cbd68350d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/plutonium_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/plutonium_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/polished_flint_block.json b/src/generated/resources/assets/anvilcraft/items/polished_flint_block.json new file mode 100644 index 0000000000..0e63df0e2f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/polished_flint_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/polished_flint_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_block.json b/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_block.json new file mode 100644 index 0000000000..5cf5301264 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/polished_heavy_iron_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_slab.json b/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_slab.json new file mode 100644 index 0000000000..6b1ddd01fc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/polished_heavy_iron_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_stairs.json b/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_stairs.json new file mode 100644 index 0000000000..8e1d44a7d1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/polished_heavy_iron_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/polished_heavy_iron_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/power_converter_big.json b/src/generated/resources/assets/anvilcraft/items/power_converter_big.json new file mode 100644 index 0000000000..516ab1c1eb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/power_converter_big.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/power_converter_big" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/power_converter_middle.json b/src/generated/resources/assets/anvilcraft/items/power_converter_middle.json new file mode 100644 index 0000000000..68ca26a205 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/power_converter_middle.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/power_converter_middle" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/power_converter_small.json b/src/generated/resources/assets/anvilcraft/items/power_converter_small.json new file mode 100644 index 0000000000..c0914f4840 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/power_converter_small.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/power_converter_small" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/powered_sliding_rail.json b/src/generated/resources/assets/anvilcraft/items/powered_sliding_rail.json new file mode 100644 index 0000000000..ab28739ebe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/powered_sliding_rail.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/powered_sliding_rail" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/prismarine_blade.json b/src/generated/resources/assets/anvilcraft/items/prismarine_blade.json new file mode 100644 index 0000000000..11a29155b4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/prismarine_blade.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/prismarine_blade" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/prismarine_cluster.json b/src/generated/resources/assets/anvilcraft/items/prismarine_cluster.json new file mode 100644 index 0000000000..36c2fd3fdd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/prismarine_cluster.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/prismarine_cluster" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/processor.json b/src/generated/resources/assets/anvilcraft/items/processor.json new file mode 100644 index 0000000000..698bd5610a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/processor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/processor" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/propel_piston.json b/src/generated/resources/assets/anvilcraft/items/propel_piston.json new file mode 100644 index 0000000000..84d5736027 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/propel_piston.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/propel_piston" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/pulse_generator.json b/src/generated/resources/assets/anvilcraft/items/pulse_generator.json new file mode 100644 index 0000000000..a2d99dcbe4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/pulse_generator.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/pulse_generator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/purple_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/purple_cement_bucket.json new file mode 100644 index 0000000000..bf4a6bc2e9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/purple_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:purple_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete.json new file mode 100644 index 0000000000..bd4d2fda3a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/purple_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..c18eb38eac --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/purple_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..f52e51ac3f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/purple_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_wall.json new file mode 100644 index 0000000000..7f3aee0131 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/purple_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/purple_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/quartz_sand.json b/src/generated/resources/assets/anvilcraft/items/quartz_sand.json new file mode 100644 index 0000000000..bf623f6a71 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/quartz_sand.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/quartz_sand" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_lead.json b/src/generated/resources/assets/anvilcraft/items/raw_lead.json new file mode 100644 index 0000000000..aee0343985 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_lead.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/raw_lead" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_lead_block.json b/src/generated/resources/assets/anvilcraft/items/raw_lead_block.json new file mode 100644 index 0000000000..56b78fb77c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_lead_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/raw_lead_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_silver.json b/src/generated/resources/assets/anvilcraft/items/raw_silver.json new file mode 100644 index 0000000000..b78b226e07 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_silver.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/raw_silver" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_silver_block.json b/src/generated/resources/assets/anvilcraft/items/raw_silver_block.json new file mode 100644 index 0000000000..e660a1dde2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_silver_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/raw_silver_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_tin.json b/src/generated/resources/assets/anvilcraft/items/raw_tin.json new file mode 100644 index 0000000000..95671c6820 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_tin.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/raw_tin" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_tin_block.json b/src/generated/resources/assets/anvilcraft/items/raw_tin_block.json new file mode 100644 index 0000000000..9ded8e0a57 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_tin_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/raw_tin_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_titanium.json b/src/generated/resources/assets/anvilcraft/items/raw_titanium.json new file mode 100644 index 0000000000..9bb901dd7c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_titanium.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/raw_titanium" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_titanium_block.json b/src/generated/resources/assets/anvilcraft/items/raw_titanium_block.json new file mode 100644 index 0000000000..9c8bb23e14 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_titanium_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/raw_titanium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_tungsten.json b/src/generated/resources/assets/anvilcraft/items/raw_tungsten.json new file mode 100644 index 0000000000..d8dbfa35fe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_tungsten.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/raw_tungsten" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_tungsten_block.json b/src/generated/resources/assets/anvilcraft/items/raw_tungsten_block.json new file mode 100644 index 0000000000..ae92c12100 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_tungsten_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/raw_tungsten_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_uranium.json b/src/generated/resources/assets/anvilcraft/items/raw_uranium.json new file mode 100644 index 0000000000..10ca5b630b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_uranium.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/raw_uranium" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_uranium_block.json b/src/generated/resources/assets/anvilcraft/items/raw_uranium_block.json new file mode 100644 index 0000000000..3fb3344073 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_uranium_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/raw_uranium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_zinc.json b/src/generated/resources/assets/anvilcraft/items/raw_zinc.json new file mode 100644 index 0000000000..9224f013eb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_zinc.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/raw_zinc" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/raw_zinc_block.json b/src/generated/resources/assets/anvilcraft/items/raw_zinc_block.json new file mode 100644 index 0000000000..40f3290c9a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/raw_zinc_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/raw_zinc_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/recovery_pearl.json b/src/generated/resources/assets/anvilcraft/items/recovery_pearl.json new file mode 100644 index 0000000000..61d5c195ff --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/recovery_pearl.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/recovery_pearl" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/red_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/red_cement_bucket.json new file mode 100644 index 0000000000..ec05b89734 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/red_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:red_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete.json new file mode 100644 index 0000000000..16e5ced55d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/red_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..e5a7e88b9e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/red_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..01b5177658 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/red_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_wall.json new file mode 100644 index 0000000000..e8f2f75f24 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/red_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/red_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/redhot_netherite_block.json b/src/generated/resources/assets/anvilcraft/items/redhot_netherite_block.json new file mode 100644 index 0000000000..0cff738ee6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/redhot_netherite_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/redhot_netherite_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/redhot_tungsten_block.json b/src/generated/resources/assets/anvilcraft/items/redhot_tungsten_block.json new file mode 100644 index 0000000000..4f08c2d6b7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/redhot_tungsten_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/redhot_tungsten_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/remote_transmission_pole.json b/src/generated/resources/assets/anvilcraft/items/remote_transmission_pole.json new file mode 100644 index 0000000000..84b9b085a8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/remote_transmission_pole.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/remote_transmission_pole" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/resentful_amber_block.json b/src/generated/resources/assets/anvilcraft/items/resentful_amber_block.json new file mode 100644 index 0000000000..5e3afd54ff --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/resentful_amber_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/resentful_amber_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/resin.json b/src/generated/resources/assets/anvilcraft/items/resin.json new file mode 100644 index 0000000000..f9ddad2f82 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/resin.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/resin" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/resin_block.json b/src/generated/resources/assets/anvilcraft/items/resin_block.json new file mode 100644 index 0000000000..a62118da11 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/resin_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/resin_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/resonator_core.json b/src/generated/resources/assets/anvilcraft/items/resonator_core.json new file mode 100644 index 0000000000..95ad3826b3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/resonator_core.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/resonator_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/rotten_flesh_block.json b/src/generated/resources/assets/anvilcraft/items/rotten_flesh_block.json new file mode 100644 index 0000000000..27172610e6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/rotten_flesh_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/rotten_flesh_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_anvil.json b/src/generated/resources/assets/anvilcraft/items/royal_anvil.json new file mode 100644 index 0000000000..0161aaeec6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_anvil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/royal_anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_anvil_hammer.json b/src/generated/resources/assets/anvilcraft/items/royal_anvil_hammer.json new file mode 100644 index 0000000000..2c19e7b487 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_anvil_hammer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_anvil_hammer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_dragon_rod.json b/src/generated/resources/assets/anvilcraft/items/royal_dragon_rod.json new file mode 100644 index 0000000000..3437714270 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_dragon_rod.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_dragon_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_grindstone.json b/src/generated/resources/assets/anvilcraft/items/royal_grindstone.json new file mode 100644 index 0000000000..aa0402380d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_grindstone.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/royal_grindstone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_smithing_table.json b/src/generated/resources/assets/anvilcraft/items/royal_smithing_table.json new file mode 100644 index 0000000000..5ed8c8371d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_smithing_table.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/royal_smithing_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_axe.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_axe.json new file mode 100644 index 0000000000..e28cc695fa --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_axe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_block.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_block.json new file mode 100644 index 0000000000..a23035c27a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/royal_steel_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_hoe.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_hoe.json new file mode 100644 index 0000000000..5d92a22348 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_ingot.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_ingot.json new file mode 100644 index 0000000000..d98a73fd21 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_nugget.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_nugget.json new file mode 100644 index 0000000000..3b473fac06 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_pickaxe.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_pickaxe.json new file mode 100644 index 0000000000..42f00fbd25 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_pickaxe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_shovel.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_shovel.json new file mode 100644 index 0000000000..2da3d74d8f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_shovel.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_sword.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_sword.json new file mode 100644 index 0000000000..992a2195ef --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_sword.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/royal_steel_upgrade_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/royal_steel_upgrade_smithing_template.json new file mode 100644 index 0000000000..68f31f8139 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/royal_steel_upgrade_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/royal_steel_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ruby.json b/src/generated/resources/assets/anvilcraft/items/ruby.json new file mode 100644 index 0000000000..563d9f4210 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ruby.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ruby" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ruby_amulet.json b/src/generated/resources/assets/anvilcraft/items/ruby_amulet.json new file mode 100644 index 0000000000..39d7903497 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ruby_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/ruby_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ruby_block.json b/src/generated/resources/assets/anvilcraft/items/ruby_block.json new file mode 100644 index 0000000000..2fd101f2ea --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ruby_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ruby_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ruby_laser.json b/src/generated/resources/assets/anvilcraft/items/ruby_laser.json new file mode 100644 index 0000000000..d2f1c44284 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ruby_laser.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ruby_laser" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/ruby_prism.json b/src/generated/resources/assets/anvilcraft/items/ruby_prism.json new file mode 100644 index 0000000000..db531c05e4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/ruby_prism.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/ruby_prism" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sapphire.json b/src/generated/resources/assets/anvilcraft/items/sapphire.json new file mode 100644 index 0000000000..d6c227c922 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sapphire.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/sapphire" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sapphire_amulet.json b/src/generated/resources/assets/anvilcraft/items/sapphire_amulet.json new file mode 100644 index 0000000000..fecbce50ad --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sapphire_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/sapphire_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sapphire_block.json b/src/generated/resources/assets/anvilcraft/items/sapphire_block.json new file mode 100644 index 0000000000..8677d92fd5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sapphire_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/sapphire_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sea_heart_shell.json b/src/generated/resources/assets/anvilcraft/items/sea_heart_shell.json new file mode 100644 index 0000000000..a95e2a8ad8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sea_heart_shell.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/sea_heart_shell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sea_heart_shell_shard.json b/src/generated/resources/assets/anvilcraft/items/sea_heart_shell_shard.json new file mode 100644 index 0000000000..206cf3e3ca --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sea_heart_shell_shard.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/sea_heart_shell_shard" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/seeds_pack.json b/src/generated/resources/assets/anvilcraft/items/seeds_pack.json new file mode 100644 index 0000000000..97dc766f5b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/seeds_pack.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/seeds_pack" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/shulker_container.json b/src/generated/resources/assets/anvilcraft/items/shulker_container.json new file mode 100644 index 0000000000..ea0dfa3628 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/shulker_container.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/shulker_container" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/silence_amulet.json b/src/generated/resources/assets/anvilcraft/items/silence_amulet.json new file mode 100644 index 0000000000..2b40a7bd93 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/silence_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/silence_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/silver_block.json b/src/generated/resources/assets/anvilcraft/items/silver_block.json new file mode 100644 index 0000000000..8a82d90fcc --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/silver_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/silver_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/silver_ingot.json b/src/generated/resources/assets/anvilcraft/items/silver_ingot.json new file mode 100644 index 0000000000..c1ceab40ef --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/silver_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/silver_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/silver_nugget.json b/src/generated/resources/assets/anvilcraft/items/silver_nugget.json new file mode 100644 index 0000000000..bb2e0dc436 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/silver_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/silver_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/silver_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/silver_pressure_plate.json new file mode 100644 index 0000000000..40d1ad666f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/silver_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/silver_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/singularity_crystal.json b/src/generated/resources/assets/anvilcraft/items/singularity_crystal.json new file mode 100644 index 0000000000..70b573023e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/singularity_crystal.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/singularity_crystal" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sliding_rail.json b/src/generated/resources/assets/anvilcraft/items/sliding_rail.json new file mode 100644 index 0000000000..a810cc092a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sliding_rail.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/sliding_rail" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sliding_rail_stop.json b/src/generated/resources/assets/anvilcraft/items/sliding_rail_stop.json new file mode 100644 index 0000000000..6919c462d0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sliding_rail_stop.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/sliding_rail_stop" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/smooth_royal_steel_block.json b/src/generated/resources/assets/anvilcraft/items/smooth_royal_steel_block.json new file mode 100644 index 0000000000..02002fe3fe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/smooth_royal_steel_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/smooth_royal_steel_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/space_overcompressor.json b/src/generated/resources/assets/anvilcraft/items/space_overcompressor.json new file mode 100644 index 0000000000..5778286147 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/space_overcompressor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/space_overcompressor" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/spectral_anvil.json b/src/generated/resources/assets/anvilcraft/items/spectral_anvil.json new file mode 100644 index 0000000000..912d9a97a9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/spectral_anvil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/spectral_anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/spectral_slingshot.json b/src/generated/resources/assets/anvilcraft/items/spectral_slingshot.json new file mode 100644 index 0000000000..c2b1a5fbf3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/spectral_slingshot.json @@ -0,0 +1,9 @@ +{ + "model": { + "type": "minecraft:special", + "base": "anvilcraft:item/spectral_slingshot", + "model": { + "type": "anvilcraft:spectral_slingshot" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/spectral_weapon_launcher.json b/src/generated/resources/assets/anvilcraft/items/spectral_weapon_launcher.json new file mode 100644 index 0000000000..3b58e3489e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/spectral_weapon_launcher.json @@ -0,0 +1,25 @@ +{ + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:special", + "base": "anvilcraft:item/spectral_weapon_launcher", + "model": { + "type": "anvilcraft:spectral_weapon_launcher" + } + }, + "on_true": { + "type": "minecraft:special", + "base": "anvilcraft:item/spectral_weapon_launcher_off", + "model": { + "type": "anvilcraft:spectral_weapon_launcher" + } + }, + "predicate": "anvilcraft:integer_component", + "property": "minecraft:component", + "value": { + "type": "anvilcraft:stored_energy", + "value": 0 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sponge_gemmule.json b/src/generated/resources/assets/anvilcraft/items/sponge_gemmule.json new file mode 100644 index 0000000000..6075586a58 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sponge_gemmule.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/sponge_gemmule" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/stable_neutronium_ingot.json b/src/generated/resources/assets/anvilcraft/items/stable_neutronium_ingot.json new file mode 100644 index 0000000000..7a6e07bc0d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/stable_neutronium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/stable_neutronium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/stamping_platform.json b/src/generated/resources/assets/anvilcraft/items/stamping_platform.json new file mode 100644 index 0000000000..1474787fbd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/stamping_platform.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/stamping_platform" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/structure_tool.json b/src/generated/resources/assets/anvilcraft/items/structure_tool.json new file mode 100644 index 0000000000..981714c02d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/structure_tool.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "minecraft:item/paper" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sturdy_deepslate.json b/src/generated/resources/assets/anvilcraft/items/sturdy_deepslate.json new file mode 100644 index 0000000000..56656105a3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sturdy_deepslate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/sturdy_deepslate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/sugar_block.json b/src/generated/resources/assets/anvilcraft/items/sugar_block.json new file mode 100644 index 0000000000..a6128cebfe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/sugar_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/sugar_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/supercapacitor.json b/src/generated/resources/assets/anvilcraft/items/supercapacitor.json new file mode 100644 index 0000000000..349538169b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/supercapacitor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/supercapacitor" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json b/src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json new file mode 100644 index 0000000000..85b153bfa3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/supercapacitor_empty" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/supercritical_nesting_shulker_box.json b/src/generated/resources/assets/anvilcraft/items/supercritical_nesting_shulker_box.json new file mode 100644 index 0000000000..e0d20aa4f5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/supercritical_nesting_shulker_box.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/supercritical_nesting_shulker_box" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tempering_glass.json b/src/generated/resources/assets/anvilcraft/items/tempering_glass.json new file mode 100644 index 0000000000..c595ce0f62 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tempering_glass.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/tempering_glass" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tesla_tower.json b/src/generated/resources/assets/anvilcraft/items/tesla_tower.json new file mode 100644 index 0000000000..a056a1c638 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tesla_tower.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/tesla_tower_overall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tin_block.json b/src/generated/resources/assets/anvilcraft/items/tin_block.json new file mode 100644 index 0000000000..a0a9547667 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tin_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/tin_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tin_can.json b/src/generated/resources/assets/anvilcraft/items/tin_can.json new file mode 100644 index 0000000000..aaa87775a2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tin_can.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/tin_can" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tin_ingot.json b/src/generated/resources/assets/anvilcraft/items/tin_ingot.json new file mode 100644 index 0000000000..cf25179f00 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tin_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/tin_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tin_nugget.json b/src/generated/resources/assets/anvilcraft/items/tin_nugget.json new file mode 100644 index 0000000000..67a6b15a80 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tin_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/tin_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tin_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/tin_pressure_plate.json new file mode 100644 index 0000000000..6fba116684 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tin_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/tin_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/titanium_block.json b/src/generated/resources/assets/anvilcraft/items/titanium_block.json new file mode 100644 index 0000000000..a158af81d4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/titanium_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/titanium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/titanium_ingot.json b/src/generated/resources/assets/anvilcraft/items/titanium_ingot.json new file mode 100644 index 0000000000..fc926ac192 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/titanium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/titanium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/titanium_nugget.json b/src/generated/resources/assets/anvilcraft/items/titanium_nugget.json new file mode 100644 index 0000000000..e91267edd3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/titanium_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/titanium_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/titanium_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/titanium_pressure_plate.json new file mode 100644 index 0000000000..3838b5392f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/titanium_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/titanium_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/topaz.json b/src/generated/resources/assets/anvilcraft/items/topaz.json new file mode 100644 index 0000000000..6151a354da --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/topaz.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/topaz" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/topaz_amulet.json b/src/generated/resources/assets/anvilcraft/items/topaz_amulet.json new file mode 100644 index 0000000000..3e606e3b06 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/topaz_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/topaz_amulet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/topaz_block.json b/src/generated/resources/assets/anvilcraft/items/topaz_block.json new file mode 100644 index 0000000000..70129a3114 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/topaz_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/topaz_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/totem_of_rage.json b/src/generated/resources/assets/anvilcraft/items/totem_of_rage.json new file mode 100644 index 0000000000..ae2af0b07a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/totem_of_rage.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/totem_of_rage" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/totem_of_recovery.json b/src/generated/resources/assets/anvilcraft/items/totem_of_recovery.json new file mode 100644 index 0000000000..623000238d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/totem_of_recovery.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/totem_of_recovery" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendence_anvil.json b/src/generated/resources/assets/anvilcraft/items/transcendence_anvil.json new file mode 100644 index 0000000000..fd3df168d7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendence_anvil.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/transcendence_anvil" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendence_anvil_hammer.json b/src/generated/resources/assets/anvilcraft/items/transcendence_anvil_hammer.json new file mode 100644 index 0000000000..efa8f0eac0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendence_anvil_hammer.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_anvil_hammer" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendence_dragon_rod.json b/src/generated/resources/assets/anvilcraft/items/transcendence_dragon_rod.json new file mode 100644 index 0000000000..7371ce8e3b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendence_dragon_rod.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_dragon_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendence_heavy_halberd.json b/src/generated/resources/assets/anvilcraft/items/transcendence_heavy_halberd.json new file mode 100644 index 0000000000..1b635ef135 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendence_heavy_halberd.json @@ -0,0 +1,14 @@ +{ + "model": { + "type": "minecraft:condition", + "on_false": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_heavy_halberd" + }, + "on_true": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_heavy_halberd_throwing" + }, + "property": "minecraft:using_item" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendence_resonator.json b/src/generated/resources/assets/anvilcraft/items/transcendence_resonator.json new file mode 100644 index 0000000000..e8cf9b5b8b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendence_resonator.json @@ -0,0 +1,41 @@ +{ + "model": { + "type": "minecraft:select", + "cases": [ + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_resonance_axe" + }, + "when": "axe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_resonance_hoe" + }, + "when": "hoe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_resonance_pickaxe" + }, + "when": "pickaxe" + }, + { + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_resonance_shovel" + }, + "when": "shovel" + } + ], + "component": "anvilcraft:resonate_mode", + "fallback": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendence_resonator" + }, + "property": "minecraft:component" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendium_block.json b/src/generated/resources/assets/anvilcraft/items/transcendium_block.json new file mode 100644 index 0000000000..da03fad22c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendium_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/transcendium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendium_ingot.json b/src/generated/resources/assets/anvilcraft/items/transcendium_ingot.json new file mode 100644 index 0000000000..fcf797649e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendium_nugget.json b/src/generated/resources/assets/anvilcraft/items/transcendium_nugget.json new file mode 100644 index 0000000000..98333a9ff6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendium_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendium_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transcendium_upgrade_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/transcendium_upgrade_smithing_template.json new file mode 100644 index 0000000000..9a4919c60c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transcendium_upgrade_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transcendium_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transmission_pole.json b/src/generated/resources/assets/anvilcraft/items/transmission_pole.json new file mode 100644 index 0000000000..7ad8e85b92 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transmission_pole.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/transmission_pole" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/transparent_crafting_table.json b/src/generated/resources/assets/anvilcraft/items/transparent_crafting_table.json new file mode 100644 index 0000000000..c6029f97d1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/transparent_crafting_table.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/transparent_crafting_table" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tungsten_block.json b/src/generated/resources/assets/anvilcraft/items/tungsten_block.json new file mode 100644 index 0000000000..ea24b9aea0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tungsten_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/tungsten_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tungsten_ingot.json b/src/generated/resources/assets/anvilcraft/items/tungsten_ingot.json new file mode 100644 index 0000000000..78d6626ae3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tungsten_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/tungsten_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tungsten_nugget.json b/src/generated/resources/assets/anvilcraft/items/tungsten_nugget.json new file mode 100644 index 0000000000..f669280749 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tungsten_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/tungsten_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/tungsten_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/tungsten_pressure_plate.json new file mode 100644 index 0000000000..64d281c9ca --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/tungsten_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/tungsten_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/two_to_one_smithing_template.json b/src/generated/resources/assets/anvilcraft/items/two_to_one_smithing_template.json new file mode 100644 index 0000000000..20a4142a8b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/two_to_one_smithing_template.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/two_to_one_smithing_template" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/uranium_block.json b/src/generated/resources/assets/anvilcraft/items/uranium_block.json new file mode 100644 index 0000000000..f324d90f25 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/uranium_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/uranium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/uranium_ingot.json b/src/generated/resources/assets/anvilcraft/items/uranium_ingot.json new file mode 100644 index 0000000000..90ce8d6485 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/uranium_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/uranium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/uranium_nugget.json b/src/generated/resources/assets/anvilcraft/items/uranium_nugget.json new file mode 100644 index 0000000000..58d55b6b36 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/uranium_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/uranium_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/uranium_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/uranium_pressure_plate.json new file mode 100644 index 0000000000..80157762a8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/uranium_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/uranium_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/utusan.json b/src/generated/resources/assets/anvilcraft/items/utusan.json new file mode 100644 index 0000000000..6c80073d6f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/utusan.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/utusan" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/void_energy_collector.json b/src/generated/resources/assets/anvilcraft/items/void_energy_collector.json new file mode 100644 index 0000000000..ad5fe62eef --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/void_energy_collector.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/void_energy_collector" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/void_matter.json b/src/generated/resources/assets/anvilcraft/items/void_matter.json new file mode 100644 index 0000000000..5c0971384a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/void_matter.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/void_matter" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/void_matter_block.json b/src/generated/resources/assets/anvilcraft/items/void_matter_block.json new file mode 100644 index 0000000000..79dd41bf65 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/void_matter_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/void_matter_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/void_stone.json b/src/generated/resources/assets/anvilcraft/items/void_stone.json new file mode 100644 index 0000000000..71be848c5a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/void_stone.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/void_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/weathered_copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/weathered_copper_pressure_plate.json new file mode 100644 index 0000000000..34749a8db4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/weathered_copper_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/weathered_copper_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/white_cement_bucket.json new file mode 100644 index 0000000000..85c1ae46ef --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:white_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_chocolate_block.json b/src/generated/resources/assets/anvilcraft/items/white_chocolate_block.json new file mode 100644 index 0000000000..3e533b2ae7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_chocolate_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_chocolate_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_chocolate_slab.json b/src/generated/resources/assets/anvilcraft/items/white_chocolate_slab.json new file mode 100644 index 0000000000..ef558cac11 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_chocolate_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_chocolate_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_chocolate_stairs.json b/src/generated/resources/assets/anvilcraft/items/white_chocolate_stairs.json new file mode 100644 index 0000000000..aa81b32453 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_chocolate_stairs.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_chocolate_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_hole.json b/src/generated/resources/assets/anvilcraft/items/white_hole.json new file mode 100644 index 0000000000..cf6d41b686 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_hole.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_hole" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete.json new file mode 100644 index 0000000000..cc0afaf67e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..718f3aac5c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..3bcaff44a7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1f790b2ab9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/white_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/white_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/wood_fiber.json b/src/generated/resources/assets/anvilcraft/items/wood_fiber.json new file mode 100644 index 0000000000..82125d8473 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/wood_fiber.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/wood_fiber" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/yellow_cement_bucket.json b/src/generated/resources/assets/anvilcraft/items/yellow_cement_bucket.json new file mode 100644 index 0000000000..9bdbaa0f2f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/yellow_cement_bucket.json @@ -0,0 +1,10 @@ +{ + "model": { + "type": "neoforge:fluid_container", + "fluid": "anvilcraft:yellow_cement", + "textures": { + "base": "minecraft:item/bucket", + "fluid": "neoforge:item/mask/bucket_fluid_drip" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete.json new file mode 100644 index 0000000000..5ef4b9ce36 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/yellow_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..458eed5ea5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_slab.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/yellow_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..965be649e3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_stair.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/yellow_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_wall.json b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_wall.json new file mode 100644 index 0000000000..f79ff3b039 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/yellow_reinforced_concrete_wall.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/yellow_reinforced_concrete_wall_inventory" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/zinc_block.json b/src/generated/resources/assets/anvilcraft/items/zinc_block.json new file mode 100644 index 0000000000..61c6cc6a95 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/zinc_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/zinc_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/zinc_ingot.json b/src/generated/resources/assets/anvilcraft/items/zinc_ingot.json new file mode 100644 index 0000000000..1e59b7cc90 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/zinc_ingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/zinc_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/zinc_nugget.json b/src/generated/resources/assets/anvilcraft/items/zinc_nugget.json new file mode 100644 index 0000000000..94afc09fd9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/zinc_nugget.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/zinc_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/zinc_pressure_plate.json b/src/generated/resources/assets/anvilcraft/items/zinc_pressure_plate.json new file mode 100644 index 0000000000..edf5e6de4a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/zinc_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:block/zinc_pressure_plate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/lang/en_ud.json b/src/generated/resources/assets/anvilcraft/lang/en_ud.json index cf6f87ecd9..c109030847 100644 --- a/src/generated/resources/assets/anvilcraft/lang/en_ud.json +++ b/src/generated/resources/assets/anvilcraft/lang/en_ud.json @@ -234,17 +234,29 @@ "block.anvilcraft.black_chocolate_slab": "qɐꞁS ǝʇɐꞁoɔoɥƆ ʞɔɐꞁᗺ", "block.anvilcraft.black_chocolate_stairs": "sɹᴉɐʇS ǝʇɐꞁoɔoɥƆ ʞɔɐꞁᗺ", "block.anvilcraft.black_hole": "ǝꞁoH ʞɔɐꞁᗺ", + "block.anvilcraft.black_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", + "block.anvilcraft.black_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", + "block.anvilcraft.black_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", + "block.anvilcraft.black_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", "block.anvilcraft.block_comparator": "ɹoʇɐɹɐdɯoƆ ʞɔoꞁᗺ", "block.anvilcraft.block_devourer": "ɹǝɹnoʌǝᗡ ʞɔoꞁᗺ", "block.anvilcraft.block_placer": "ɹǝɔɐꞁԀ ʞɔoꞁᗺ", "block.anvilcraft.blue_cement": "ʇuǝɯǝƆ ǝnꞁᗺ", "block.anvilcraft.blue_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ǝnꞁᗺ", + "block.anvilcraft.blue_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", + "block.anvilcraft.blue_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", + "block.anvilcraft.blue_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", + "block.anvilcraft.blue_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", "block.anvilcraft.brass_block": "ssɐɹᗺ ɟo ʞɔoꞁᗺ", "block.anvilcraft.brass_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ssɐɹᗺ", "block.anvilcraft.bronze_block": "ǝzuoɹᗺ ɟo ʞɔoꞁᗺ", "block.anvilcraft.bronze_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ǝzuoɹᗺ", "block.anvilcraft.brown_cement": "ʇuǝɯǝƆ uʍoɹᗺ", "block.anvilcraft.brown_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ uʍoɹᗺ", + "block.anvilcraft.brown_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", + "block.anvilcraft.brown_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", + "block.anvilcraft.brown_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", + "block.anvilcraft.brown_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", "block.anvilcraft.cake_base_block": "ʞɔoꞁᗺ ǝsɐᗺ ǝʞɐƆ", "block.anvilcraft.cake_block": "ʞɔoꞁᗺ ǝʞɐƆ", "block.anvilcraft.celestial_forging_anvil": "ꞁᴉʌuⱯ ᵷuᴉᵷɹoℲ ꞁɐᴉʇsǝꞁǝƆ", @@ -297,6 +309,10 @@ "block.anvilcraft.cut_royal_steel_stairs": "sɹᴉɐʇS ꞁǝǝʇS ꞁɐʎoᴚ ʇnƆ", "block.anvilcraft.cyan_cement": "ʇuǝɯǝƆ uɐʎƆ", "block.anvilcraft.cyan_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ uɐʎƆ", + "block.anvilcraft.cyan_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", + "block.anvilcraft.cyan_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", + "block.anvilcraft.cyan_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", + "block.anvilcraft.cyan_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", "block.anvilcraft.deepslate_lead_ore": "ǝɹO pɐǝꞀ ǝʇɐꞁsdǝǝᗡ", "block.anvilcraft.deepslate_silver_ore": "ǝɹO ɹǝʌꞁᴉS ǝʇɐꞁsdǝǝᗡ", "block.anvilcraft.deepslate_tin_ore": "ǝɹO uᴉ⟘ ǝʇɐꞁsdǝǝᗡ", @@ -320,7 +336,6 @@ "block.anvilcraft.exp_gem_block": "ɯǝ⅁ ǝɔuǝᴉɹǝdxƎ ɟo ʞɔoꞁᗺ", "block.anvilcraft.exposed_copper_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɹǝddoƆ pǝsodxƎ", "block.anvilcraft.ferrite_core_magnet_block": "ʇǝuᵷɐW ɟo ʞɔoꞁᗺ pǝɹoƆ-ǝʇᴉɹɹǝℲ", - "block.anvilcraft.fire_cauldron": "uoɹpꞁnɐƆ ǝɹᴉℲ", "block.anvilcraft.fish_tank": "ʞuɐ⟘ ɥsᴉℲ", "block.anvilcraft.flint_block": "ʞɔoꞁᗺ ʇuᴉꞁℲ", "block.anvilcraft.fluid_tank": "ʞuɐ⟘ pᴉnꞁℲ", @@ -334,8 +349,16 @@ "block.anvilcraft.glowing_tungsten_block": "uǝʇsᵷun⟘ ɟo ʞɔoꞁᗺ ᵷuᴉʍoꞁ⅁", "block.anvilcraft.gray_cement": "ʇuǝɯǝƆ ʎɐɹ⅁", "block.anvilcraft.gray_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ʎɐɹ⅁", + "block.anvilcraft.gray_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", + "block.anvilcraft.gray_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", + "block.anvilcraft.gray_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", + "block.anvilcraft.gray_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", "block.anvilcraft.green_cement": "ʇuǝɯǝƆ uǝǝɹ⅁", "block.anvilcraft.green_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ uǝǝɹ⅁", + "block.anvilcraft.green_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", + "block.anvilcraft.green_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", + "block.anvilcraft.green_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", + "block.anvilcraft.green_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", "block.anvilcraft.gunpowder_block": "ʞɔoꞁᗺ ɹǝpʍodun⅁", "block.anvilcraft.heat_collector": "ɹoʇɔǝꞁꞁoƆ ʇɐǝH", "block.anvilcraft.heat_collector.placement_too_close_to_another": "ɹoʇɔǝꞁꞁoɔ ʇɐǝɥ ɹǝɥʇouɐ oʇ ǝsoꞁɔ oo⟘", @@ -370,13 +393,29 @@ "block.anvilcraft.levitation_powder_block": "ɹǝpʍoԀ uoᴉʇɐʇᴉʌǝꞀ ɟo ʞɔoꞁᗺ", "block.anvilcraft.light_blue_cement": "ʇuǝɯǝƆ ǝnꞁᗺ ʇɥᵷᴉꞀ", "block.anvilcraft.light_blue_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_blue_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_blue_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_blue_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_blue_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", "block.anvilcraft.light_gray_cement": "ʇuǝɯǝƆ ʎɐɹ⅁ ʇɥᵷᴉꞀ", "block.anvilcraft.light_gray_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_gray_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_gray_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_gray_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "block.anvilcraft.light_gray_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", "block.anvilcraft.lime_cement": "ʇuǝɯǝƆ ǝɯᴉꞀ", "block.anvilcraft.lime_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ǝɯᴉꞀ", + "block.anvilcraft.lime_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", + "block.anvilcraft.lime_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", + "block.anvilcraft.lime_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", + "block.anvilcraft.lime_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", "block.anvilcraft.load_monitor": "ɹoʇᴉuoW pɐoꞀ", "block.anvilcraft.magenta_cement": "ʇuǝɯǝƆ ɐʇuǝᵷɐW", "block.anvilcraft.magenta_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ɐʇuǝᵷɐW", + "block.anvilcraft.magenta_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", + "block.anvilcraft.magenta_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", + "block.anvilcraft.magenta_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", + "block.anvilcraft.magenta_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", "block.anvilcraft.magnet_block": "ʇǝuᵷɐW ɟo ʞɔoꞁᗺ", "block.anvilcraft.magnetic_chute": "ǝʇnɥƆ ɔᴉʇǝuᵷɐW", "block.anvilcraft.magnetoelectric_core": "ǝɹoƆ ɔᴉɹʇɔǝꞁǝoʇǝuᵷɐW", @@ -396,6 +435,10 @@ "block.anvilcraft.oil_cauldron": "uoɹpꞁnɐƆ ꞁᴉO", "block.anvilcraft.orange_cement": "ʇuǝɯǝƆ ǝᵷuɐɹO", "block.anvilcraft.orange_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ǝᵷuɐɹO", + "block.anvilcraft.orange_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", + "block.anvilcraft.orange_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", + "block.anvilcraft.orange_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", + "block.anvilcraft.orange_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", "block.anvilcraft.over_nesting_shulker_box": "xoᗺ ɹǝʞꞁnɥS ᵷuᴉʇsǝN ɹǝʌO", "block.anvilcraft.overheated_ember_metal_block": "ꞁɐʇǝW ɹǝqɯƎ ɟo ʞɔoꞁᗺ pǝʇɐǝɥɹǝʌO", "block.anvilcraft.overseer": "ɹǝǝsɹǝʌO", @@ -403,6 +446,10 @@ "block.anvilcraft.piezoelectric_crystal": "ꞁɐʇsʎɹƆ ɔᴉɹʇɔǝꞁǝozǝᴉԀ", "block.anvilcraft.pink_cement": "ʇuǝɯǝƆ ʞuᴉԀ", "block.anvilcraft.pink_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ʞuᴉԀ", + "block.anvilcraft.pink_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", + "block.anvilcraft.pink_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", + "block.anvilcraft.pink_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", + "block.anvilcraft.pink_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", "block.anvilcraft.plasma_jets": "sʇǝՐ ɐɯsɐꞁԀ", "block.anvilcraft.plutonium_block": "ɯnᴉuoʇnꞁԀ ɟo ʞɔoꞁᗺ", "block.anvilcraft.plutonium_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɯnᴉuoʇnꞁԀ", @@ -418,6 +465,10 @@ "block.anvilcraft.pulse_generator": "ɹoʇɐɹǝuǝ⅁ ǝsꞁnԀ", "block.anvilcraft.purple_cement": "ʇuǝɯǝƆ ǝꞁdɹnԀ", "block.anvilcraft.purple_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ǝꞁdɹnԀ", + "block.anvilcraft.purple_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", + "block.anvilcraft.purple_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", + "block.anvilcraft.purple_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", + "block.anvilcraft.purple_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", "block.anvilcraft.quartz_sand": "puɐS zʇɹɐnꝹ", "block.anvilcraft.raw_lead_block": "pɐǝꞀ ʍɐᴚ ɟo ʞɔoꞁᗺ", "block.anvilcraft.raw_silver_block": "ɹǝʌꞁᴉS ʍɐᴚ ɟo ʞɔoꞁᗺ", @@ -428,72 +479,12 @@ "block.anvilcraft.raw_zinc_block": "ɔuᴉZ ʍɐᴚ ɟo ʞɔoꞁᗺ", "block.anvilcraft.red_cement": "ʇuǝɯǝƆ pǝᴚ", "block.anvilcraft.red_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ pǝᴚ", + "block.anvilcraft.red_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", + "block.anvilcraft.red_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", + "block.anvilcraft.red_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", + "block.anvilcraft.red_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", "block.anvilcraft.redhot_netherite_block": "ǝʇᴉɹǝɥʇǝN ɟo ʞɔoꞁᗺ ʇoɥpǝᴚ", "block.anvilcraft.redhot_tungsten_block": "uǝʇsᵷun⟘ ɟo ʞɔoꞁᗺ ʇoɥpǝᴚ", - "block.anvilcraft.reinforced_concrete_black": "ʞɔɐꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_black_slab": "qɐꞁS ʞɔɐꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_black_stair": "ɹᴉɐʇS ʞɔɐꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_black_wall": "ꞁꞁɐM ʞɔɐꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_blue": "ǝnꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_blue_slab": "qɐꞁS ǝnꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_blue_stair": "ɹᴉɐʇS ǝnꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_blue_wall": "ꞁꞁɐM ǝnꞁᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_brown": "uʍoɹᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_brown_slab": "qɐꞁS uʍoɹᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_brown_stair": "ɹᴉɐʇS uʍoɹᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_brown_wall": "ꞁꞁɐM uʍoɹᗺ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_cyan": "uɐʎƆ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_cyan_slab": "qɐꞁS uɐʎƆ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_cyan_stair": "ɹᴉɐʇS uɐʎƆ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_cyan_wall": "ꞁꞁɐM uɐʎƆ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_gray": "ʎɐɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_gray_slab": "qɐꞁS ʎɐɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_gray_stair": "ɹᴉɐʇS ʎɐɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_gray_wall": "ꞁꞁɐM ʎɐɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_green": "uǝǝɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_green_slab": "qɐꞁS uǝǝɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_green_stair": "ɹᴉɐʇS uǝǝɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_green_wall": "ꞁꞁɐM uǝǝɹ⅁ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_blue": "ǝnꞁᗺ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_blue_slab": "qɐꞁS ǝnꞁᗺ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_blue_stair": "ɹᴉɐʇS ǝnꞁᗺ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_blue_wall": "ꞁꞁɐM ǝnꞁᗺ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_gray": "ʎɐɹ⅁ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_gray_slab": "qɐꞁS ʎɐɹ⅁ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_gray_stair": "ɹᴉɐʇS ʎɐɹ⅁ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_light_gray_wall": "ꞁꞁɐM ʎɐɹ⅁ ʇɥᵷᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_lime": "ǝɯᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_lime_slab": "qɐꞁS ǝɯᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_lime_stair": "ɹᴉɐʇS ǝɯᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_lime_wall": "ꞁꞁɐM ǝɯᴉꞀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_magenta": "ɐʇuǝᵷɐW ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_magenta_slab": "qɐꞁS ɐʇuǝᵷɐW ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_magenta_stair": "ɹᴉɐʇS ɐʇuǝᵷɐW ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_magenta_wall": "ꞁꞁɐM ɐʇuǝᵷɐW ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_orange": "ǝᵷuɐɹO ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_orange_slab": "qɐꞁS ǝᵷuɐɹO ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_orange_stair": "ɹᴉɐʇS ǝᵷuɐɹO ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_orange_wall": "ꞁꞁɐM ǝᵷuɐɹO ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_pink": "ʞuᴉԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_pink_slab": "qɐꞁS ʞuᴉԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_pink_stair": "ɹᴉɐʇS ʞuᴉԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_pink_wall": "ꞁꞁɐM ʞuᴉԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_purple": "ǝꞁdɹnԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_purple_slab": "qɐꞁS ǝꞁdɹnԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_purple_stair": "ɹᴉɐʇS ǝꞁdɹnԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_purple_wall": "ꞁꞁɐM ǝꞁdɹnԀ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_red": "pǝᴚ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_red_slab": "qɐꞁS pǝᴚ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_red_stair": "ɹᴉɐʇS pǝᴚ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_red_wall": "ꞁꞁɐM pǝᴚ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_white": "ǝʇᴉɥM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_white_slab": "qɐꞁS ǝʇᴉɥM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_white_stair": "ɹᴉɐʇS ǝʇᴉɥM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_white_wall": "ꞁꞁɐM ǝʇᴉɥM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_yellow": "ʍoꞁꞁǝ⅄ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_yellow_slab": "qɐꞁS ʍoꞁꞁǝ⅄ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_yellow_stair": "ɹᴉɐʇS ʍoꞁꞁǝ⅄ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", - "block.anvilcraft.reinforced_concrete_yellow_wall": "ꞁꞁɐM ʍoꞁꞁǝ⅄ ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ", "block.anvilcraft.remote_transmission_pole": "ǝꞁoԀ uoᴉssᴉɯsuɐɹ⟘ ǝʇoɯǝᴚ", "block.anvilcraft.resentful_amber_block": "ɹǝqɯⱯ ɟo ʞɔoꞁᗺ ꞁnɟʇuǝsǝᴚ", "block.anvilcraft.resin_block": "uᴉsǝᴚ ɟo ʞɔoꞁᗺ", @@ -546,8 +537,16 @@ "block.anvilcraft.white_chocolate_slab": "qɐꞁS ǝʇɐꞁoɔoɥƆ ǝʇᴉɥM", "block.anvilcraft.white_chocolate_stairs": "sɹᴉɐʇS ǝʇɐꞁoɔoɥƆ ǝʇᴉɥM", "block.anvilcraft.white_hole": "ǝꞁoH ǝʇᴉɥM", + "block.anvilcraft.white_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", + "block.anvilcraft.white_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", + "block.anvilcraft.white_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", + "block.anvilcraft.white_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", "block.anvilcraft.yellow_cement": "ʇuǝɯǝƆ ʍoꞁꞁǝ⅄", "block.anvilcraft.yellow_cement_cauldron": "uoɹpꞁnɐƆ ʇuǝɯǝƆ ʍoꞁꞁǝ⅄", + "block.anvilcraft.yellow_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", + "block.anvilcraft.yellow_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", + "block.anvilcraft.yellow_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", + "block.anvilcraft.yellow_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", "block.anvilcraft.zinc_block": "ɔuᴉZ ɟo ʞɔoꞁᗺ", "block.anvilcraft.zinc_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɔuᴉZ", "command.anvilcraft.multiBlock.multi_block_pos": " sᴉ sod ʇɹɐd uᴉɐW", @@ -713,7 +712,12 @@ "intro.anvilcraft.patchouli.structural_engineering": "()$˙ssǝɹᵷoɹd ɹno puɐʇsɹǝpun ʇouuɐɔ ʎꞁdɯᴉs ǝꞁdoǝd uoɯɯoƆ ˙ʎɹɐuᴉpɹo ǝɥʇ puoʎǝq sn sǝʇɐʌǝꞁǝ ʇɐɥʇ ʇɔnpoɹd ɐ ʇnq 'uoᴉʇnꞁos ǝuo ʎꞁuo ɥʇᴉʍ ǝᵷpǝꞁʍouʞ pᴉᵷᴉɹ ɐ ʇou sᴉ ʎᵷoꞁouɥɔǝ⟘(999999#)$(ᘔɹq)$ ˙suoᴉʇɔunɟ ꞁɐᴉɔǝds ɥʇᴉʍ sǝuᴉɥɔɐɯ ᵷuᴉɹǝǝuᴉᵷuǝ ǝʇɐǝɹɔ uɐɔ ǝʍ 'sǝɹnʇɔnɹʇs ʞɔoꞁq-ᴉʇꞁnɯ ɔᴉɟᴉɔǝds ᵷuᴉpꞁᴉnq ʎᗺ", "intro.anvilcraft.patchouli.technology_application": "˙ʎᵷoꞁouɥɔǝʇ ʇɟɐɹɔꞁᴉʌuⱯ ǝɥʇ ɥᵷnoɹɥʇ sǝɔuɐʇsqns ʍǝu ɟo uoᴉʇɐɯɹoɟsuɐɹʇ ɹo uoᴉʇɔnpoɹd ǝɥ⟘", "item.anvilcraft.abnormal_amulet": "ʇǝꞁnɯⱯ ꞁɐɯɹouqⱯ", + "item.anvilcraft.acceleration_ring": "ᵷuᴉᴚ uoᴉʇɐɹǝꞁǝɔɔⱯ", + "item.anvilcraft.activator_sliding_rail": "ꞁᴉɐᴚ ᵷuᴉpᴉꞁS ɹoʇɐʌᴉʇɔⱯ", + "item.anvilcraft.active_silencer": "ɹǝɔuǝꞁᴉS ǝʌᴉʇɔⱯ", + "item.anvilcraft.advanced_comparator": "ɹoʇɐɹɐdɯoƆ pǝɔuɐʌpⱯ", "item.anvilcraft.amber": "ɹǝqɯⱯ", + "item.anvilcraft.amber_block": "ʞɔoꞁᗺ ɹǝqɯⱯ", "item.anvilcraft.amethyst_axe": "ǝxⱯ ʇsʎɥʇǝɯⱯ", "item.anvilcraft.amethyst_hoe": "ǝoH ʇsʎɥʇǝɯⱯ", "item.anvilcraft.amethyst_pickaxe": "ǝxɐʞɔᴉԀ ʇsʎɥʇǝɯⱯ", @@ -724,46 +728,144 @@ "item.anvilcraft.anvil_amulet": "ʇǝꞁnɯⱯ ꞁᴉʌuⱯ", "item.anvilcraft.anvil_hammer": "ɹǝɯɯɐH ꞁᴉʌuⱯ", "item.anvilcraft.anvil_railgun": "unᵷꞁᴉɐᴚ ꞁᴉʌuⱯ", + "item.anvilcraft.arrow": "ʍoɹɹⱯ", + "item.anvilcraft.batch_crafter": "ɹǝʇɟɐɹƆ ɥɔʇɐᗺ", + "item.anvilcraft.batch_cutter": "ɹǝʇʇnƆ ɥɔʇɐᗺ", "item.anvilcraft.beef_mushroom_stew": "ʍǝʇS ɯooɹɥsnW ɟǝǝᗺ", + "item.anvilcraft.berry_cake_block": "ʞɔoꞁᗺ ǝʞɐƆ ʎɹɹǝᗺ", + "item.anvilcraft.berry_cream_block": "ʞɔoꞁᗺ ɯɐǝɹƆ ʎɹɹǝᗺ", "item.anvilcraft.black_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ʞɔɐꞁᗺ", + "item.anvilcraft.black_chocolate_block": "ʞɔoꞁᗺ ǝʇɐꞁoɔoɥƆ ʞɔɐꞁᗺ", + "item.anvilcraft.black_chocolate_slab": "qɐꞁS ǝʇɐꞁoɔoɥƆ ʞɔɐꞁᗺ", + "item.anvilcraft.black_chocolate_stairs": "sɹᴉɐʇS ǝʇɐꞁoɔoɥƆ ʞɔɐꞁᗺ", + "item.anvilcraft.black_hole": "ǝꞁoH ʞɔɐꞁᗺ", + "item.anvilcraft.black_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", + "item.anvilcraft.black_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", + "item.anvilcraft.black_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", + "item.anvilcraft.black_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞɔɐꞁᗺ", + "item.anvilcraft.block_comparator": "ɹoʇɐɹɐdɯoƆ ʞɔoꞁᗺ", + "item.anvilcraft.block_devourer": "ɹǝɹnoʌǝᗡ ʞɔoꞁᗺ", + "item.anvilcraft.block_placer": "ɹǝɔɐꞁԀ ʞɔoꞁᗺ", "item.anvilcraft.blue_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝnꞁᗺ", + "item.anvilcraft.blue_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", + "item.anvilcraft.blue_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", + "item.anvilcraft.blue_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", + "item.anvilcraft.blue_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ", + "item.anvilcraft.brass_block": "ʞɔoꞁᗺ ssɐɹᗺ", "item.anvilcraft.brass_ingot": "ʇoᵷuI ssɐɹᗺ", "item.anvilcraft.brass_nugget": "ʇǝᵷᵷnN ssɐɹᗺ", + "item.anvilcraft.brass_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ssɐɹᗺ", + "item.anvilcraft.bronze_block": "ʞɔoꞁᗺ ǝzuoɹᗺ", "item.anvilcraft.bronze_ingot": "ʇoᵷuI ǝzuoɹᗺ", "item.anvilcraft.bronze_nugget": "ʇǝᵷᵷnN ǝzuoɹᗺ", + "item.anvilcraft.bronze_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ǝzuoɹᗺ", "item.anvilcraft.brown_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ uʍoɹᗺ", + "item.anvilcraft.brown_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", + "item.anvilcraft.brown_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", + "item.anvilcraft.brown_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", + "item.anvilcraft.brown_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uʍoɹᗺ", + "item.anvilcraft.cake_base_block": "ʞɔoꞁᗺ ǝsɐᗺ ǝʞɐƆ", + "item.anvilcraft.cake_block": "ʞɔoꞁᗺ ǝʞɐƆ", "item.anvilcraft.canned_food": "pooℲ pǝuuɐƆ", "item.anvilcraft.capacitor": "ɹoʇᴉɔɐdɐƆ", "item.anvilcraft.capacitor_empty": "ɹoʇᴉɔɐdɐƆ ʎʇdɯƎ", "item.anvilcraft.cat_amulet": "ʇǝꞁnɯⱯ ʇɐƆ", + "item.anvilcraft.celestial_forging_anvil": "ꞁᴉʌuⱯ ᵷuᴉᵷɹoℲ ꞁɐᴉʇsǝꞁǝƆ", + "item.anvilcraft.celestial_forging_anvil_amplifier": "ɹǝᴉɟᴉꞁdɯⱯ ꞁᴉʌuⱯ ᵷuᴉᵷɹoℲ ꞁɐᴉʇsǝꞁǝƆ", + "item.anvilcraft.celestial_forging_anvil_fluid_interface": "ǝɔɐɟɹǝʇuI pᴉnꞁℲ ꞁᴉʌuⱯ ᵷuᴉᵷɹoℲ ꞁɐᴉʇsǝꞁǝƆ", + "item.anvilcraft.celestial_forging_anvil_laser_interface": "ǝɔɐɟɹǝʇuI ɹǝsɐꞀ ꞁᴉʌuⱯ ᵷuᴉᵷɹoℲ ꞁɐᴉʇsǝꞁǝƆ", + "item.anvilcraft.celestial_forging_anvil_logistics_interface": "ǝɔɐɟɹǝʇuI sɔᴉʇsᴉᵷoꞀ ꞁᴉʌuⱯ ᵷuᴉᵷɹoℲ ꞁɐᴉʇsǝꞁǝƆ", + "item.anvilcraft.charge_collector": "ɹoʇɔǝꞁꞁoƆ ǝᵷɹɐɥƆ", "item.anvilcraft.charged_neutronium_ingot": "ʇoᵷuI ɯnᴉuoɹʇnǝN pǝᵷɹɐɥƆ", + "item.anvilcraft.charger": "ɹǝᵷɹɐɥƆ", "item.anvilcraft.chocolate": "ǝʇɐꞁoɔoɥƆ", "item.anvilcraft.chocolate_black": "ʞɔɐꞁᗺ ǝʇɐꞁoɔoɥƆ", + "item.anvilcraft.chocolate_block": "ʞɔoꞁᗺ ǝʇɐꞁoɔoɥƆ", + "item.anvilcraft.chocolate_cake_block": "ʞɔoꞁᗺ ǝʞɐƆ ǝʇɐꞁoɔoɥƆ", + "item.anvilcraft.chocolate_cream_block": "ʞɔoꞁᗺ ɯɐǝɹƆ ǝʇɐꞁoɔoɥƆ", + "item.anvilcraft.chocolate_slab": "qɐꞁS ǝʇɐꞁoɔoɥƆ", + "item.anvilcraft.chocolate_stairs": "sɹᴉɐʇS ǝʇɐꞁoɔoɥƆ", "item.anvilcraft.chocolate_white": "ǝʇᴉɥM ǝʇɐꞁoɔoɥƆ", + "item.anvilcraft.chromatic_stone": "ǝuoʇS ɔᴉʇɐɯoɹɥƆ", + "item.anvilcraft.chute": "ǝʇnɥƆ", + "item.anvilcraft.cinerite": "ǝʇᴉɹǝuᴉƆ", "item.anvilcraft.circuit_board": "pɹɐoᗺ ʇᴉnɔɹᴉƆ", "item.anvilcraft.cocoa_butter": "ɹǝʇʇnᗺ ɐoɔoƆ", "item.anvilcraft.cocoa_liquor": "ɹonbᴉꞀ ɐoɔoƆ", "item.anvilcraft.cocoa_powder": "ɹǝpʍoԀ ɐoɔoƆ", "item.anvilcraft.comrade_amulet": "ʇǝꞁnɯⱯ ǝpɐɹɯoƆ", "item.anvilcraft.comrade_amulet.tooltip": ":sɹǝʎɐꞁd pǝuᵷᴉS", + "item.anvilcraft.confined_energy_anvilon": "uoꞁᴉʌuⱯ ʎᵷɹǝuƎ pǝuᴉɟuoƆ", + "item.anvilcraft.confined_mass_anvilon": "uoꞁᴉʌuⱯ ssɐW pǝuᴉɟuoƆ", + "item.anvilcraft.confined_neutronium_ingot": "ʇoᵷuI ɯnᴉuoɹʇnǝN pǝuᴉɟuoƆ", + "item.anvilcraft.confined_space_anvilon": "uoꞁᴉʌuⱯ ǝɔɐdS pǝuᴉɟuoƆ", + "item.anvilcraft.confined_time_anvilon": "uoꞁᴉʌuⱯ ǝɯᴉ⟘ pǝuᴉɟuoƆ", + "item.anvilcraft.confinement_chamber": "ɹǝqɯɐɥƆ ʇuǝɯǝuᴉɟuoƆ", + "item.anvilcraft.controllable_sand": "puɐS ǝꞁqɐꞁꞁoɹʇuoƆ", "item.anvilcraft.copper_nugget": "ʇǝᵷᵷnN ɹǝddoƆ", + "item.anvilcraft.copper_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɹǝddoƆ", + "item.anvilcraft.corrupted_beacon": "uoɔɐǝᗺ pǝʇdnɹɹoƆ", "item.anvilcraft.crab_claw": "ʍɐꞁƆ qɐɹƆ", + "item.anvilcraft.crab_trap": "dɐɹ⟘ qɐɹƆ", "item.anvilcraft.cream": "ɯɐǝɹƆ", + "item.anvilcraft.cream_block": "ʞɔoꞁᗺ ɯɐǝɹƆ", "item.anvilcraft.creamy_bread_roll": "ꞁꞁoᴚ pɐǝɹᗺ ʎɯɐǝɹƆ", + "item.anvilcraft.creative_generator": "ɹoʇɐɹǝuǝ⅁ ǝʌᴉʇɐǝɹƆ", + "item.anvilcraft.crushing_table": "ǝꞁqɐ⟘ ᵷuᴉɥsnɹƆ", + "item.anvilcraft.cursed_gold_block": "ʞɔoꞁᗺ pꞁo⅁ pǝsɹnƆ", "item.anvilcraft.cursed_gold_ingot": "ʇoᵷuI pꞁo⅁ pǝsɹnƆ", "item.anvilcraft.cursed_gold_nugget": "ʇǝᵷᵷnN pꞁo⅁ pǝsɹnƆ", + "item.anvilcraft.cut_ember_metal_block": "ʞɔoꞁᗺ ꞁɐʇǝW ɹǝqɯƎ ʇnƆ", + "item.anvilcraft.cut_ember_metal_pillar": "ɹɐꞁꞁᴉԀ ꞁɐʇǝW ɹǝqɯƎ ʇnƆ", + "item.anvilcraft.cut_ember_metal_slab": "qɐꞁS ꞁɐʇǝW ɹǝqɯƎ ʇnƆ", + "item.anvilcraft.cut_ember_metal_stairs": "sɹᴉɐʇS ꞁɐʇǝW ɹǝqɯƎ ʇnƆ", + "item.anvilcraft.cut_flint_block": "ʞɔoꞁᗺ ʇuᴉꞁℲ ʇnƆ", + "item.anvilcraft.cut_flint_pillar": "ɹɐꞁꞁᴉԀ ʇuᴉꞁℲ ʇnƆ", + "item.anvilcraft.cut_flint_slab": "qɐꞁS ʇuᴉꞁℲ ʇnƆ", + "item.anvilcraft.cut_flint_stairs": "sɹᴉɐʇS ʇuᴉꞁℲ ʇnƆ", + "item.anvilcraft.cut_frost_metal_block": "ʞɔoꞁᗺ ꞁɐʇǝW ʇsoɹℲ ʇnƆ", + "item.anvilcraft.cut_frost_metal_pillar": "ɹɐꞁꞁᴉԀ ꞁɐʇǝW ʇsoɹℲ ʇnƆ", + "item.anvilcraft.cut_frost_metal_slab": "qɐꞁS ꞁɐʇǝW ʇsoɹℲ ʇnƆ", + "item.anvilcraft.cut_frost_metal_stairs": "sɹᴉɐʇS ꞁɐʇǝW ʇsoɹℲ ʇnƆ", + "item.anvilcraft.cut_heavy_iron_block": "ʞɔoꞁᗺ uoɹI ʎʌɐǝH ʇnƆ", + "item.anvilcraft.cut_heavy_iron_slab": "qɐꞁS uoɹI ʎʌɐǝH ʇnƆ", + "item.anvilcraft.cut_heavy_iron_stairs": "sɹᴉɐʇS uoɹI ʎʌɐǝH ʇnƆ", + "item.anvilcraft.cut_royal_steel_block": "ʞɔoꞁᗺ ꞁǝǝʇS ꞁɐʎoᴚ ʇnƆ", + "item.anvilcraft.cut_royal_steel_pillar": "ɹɐꞁꞁᴉԀ ꞁǝǝʇS ꞁɐʎoᴚ ʇnƆ", + "item.anvilcraft.cut_royal_steel_slab": "qɐꞁS ꞁǝǝʇS ꞁɐʎoᴚ ʇnƆ", + "item.anvilcraft.cut_royal_steel_stairs": "sɹᴉɐʇS ꞁǝǝʇS ꞁɐʎoᴚ ʇnƆ", "item.anvilcraft.cyan_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ uɐʎƆ", + "item.anvilcraft.cyan_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", + "item.anvilcraft.cyan_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", + "item.anvilcraft.cyan_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", + "item.anvilcraft.cyan_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uɐʎƆ", + "item.anvilcraft.deepslate_lead_ore": "ǝɹO pɐǝꞀ ǝʇɐꞁsdǝǝᗡ", + "item.anvilcraft.deepslate_silver_ore": "ǝɹO ɹǝʌꞁᴉS ǝʇɐꞁsdǝǝᗡ", + "item.anvilcraft.deepslate_tin_ore": "ǝɹO uᴉ⟘ ǝʇɐꞁsdǝǝᗡ", + "item.anvilcraft.deepslate_titanium_ore": "ǝɹO ɯnᴉuɐʇᴉ⟘ ǝʇɐꞁsdǝǝᗡ", + "item.anvilcraft.deepslate_tungsten_ore": "ǝɹO uǝʇsᵷun⟘ ǝʇɐꞁsdǝǝᗡ", + "item.anvilcraft.deepslate_uranium_ore": "ǝɹO ɯnᴉuɐɹ∩ ǝʇɐꞁsdǝǝᗡ", + "item.anvilcraft.deepslate_zinc_ore": "ǝɹO ɔuᴉZ ǝʇɐꞁsdǝǝᗡ", + "item.anvilcraft.deflection_ring": "ᵷuᴉᴚ uoᴉʇɔǝꞁɟǝᗡ", "item.anvilcraft.deformation_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS uoᴉʇɐɯɹoɟǝᗡ", + "item.anvilcraft.detector_sliding_rail": "ꞁᴉɐᴚ ᵷuᴉpᴉꞁS ɹoʇɔǝʇǝᗡ", + "item.anvilcraft.discharger": "ɹǝᵷɹɐɥɔsᴉᗡ", "item.anvilcraft.disk": "ʞsᴉᗡ", "item.anvilcraft.disk.stored_from": "%s :ɯoɹɟ pǝɹoʇS", "item.anvilcraft.dog_amulet": "ʇǝꞁnɯⱯ ᵷoᗡ", "item.anvilcraft.dough": "ɥᵷnoᗡ", "item.anvilcraft.dragon_rod": "poᴚ uoᵷɐɹᗡ", "item.anvilcraft.earth_core_shard": "pɹɐɥS ǝɹoƆ ɥʇɹɐƎ", + "item.anvilcraft.earth_core_shard_block": "ʞɔoꞁᗺ pɹɐɥS ǝɹoƆ ɥʇɹɐƎ", + "item.anvilcraft.earth_core_shard_ore": "ǝɹO pɹɐɥS ǝɹoƆ ɥʇɹɐƎ", "item.anvilcraft.eight_to_one_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS ǝuO oʇ ʇɥᵷᴉƎ", + "item.anvilcraft.ember_anvil": "ꞁᴉʌuⱯ ɹǝqɯƎ", "item.anvilcraft.ember_anvil_hammer": "ɹǝɯɯɐH ꞁᴉʌuⱯ ɹǝqɯƎ", "item.anvilcraft.ember_dragon_rod": "poᴚ uoᵷɐɹᗡ ɹǝqɯƎ", + "item.anvilcraft.ember_glass": "ssɐꞁ⅁ ɹǝqɯƎ", + "item.anvilcraft.ember_grindstone": "ǝuoʇspuᴉɹ⅁ ɹǝqɯƎ", "item.anvilcraft.ember_metal_axe": "ǝxⱯ ꞁɐʇǝW ɹǝqɯƎ", + "item.anvilcraft.ember_metal_block": "ʞɔoꞁᗺ ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.ember_metal_heavy_halberd": "pɹǝqꞁɐH ʎʌɐǝH ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.ember_metal_hoe": "ǝoH ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.ember_metal_ingot": "ʇoᵷuI ꞁɐʇǝW ɹǝqɯƎ", @@ -773,15 +875,27 @@ "item.anvilcraft.ember_metal_shovel": "ꞁǝʌoɥS ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.ember_metal_sword": "pɹoʍS ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.ember_metal_upgrade_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS", + "item.anvilcraft.ember_smithing_table": "ǝꞁqɐ⟘ ᵷuᴉɥʇᴉɯS ɹǝqɯƎ", "item.anvilcraft.emerald_amulet": "ʇǝꞁnɯⱯ pꞁɐɹǝɯƎ", + "item.anvilcraft.end_dust": "ʇsnᗡ puƎ", "item.anvilcraft.energy_weapon_platform": "ɯɹoɟʇɐꞁԀ uodɐǝM ʎᵷɹǝuƎ", "item.anvilcraft.exp_bucket": "ʇǝʞɔnᗺ dxƎ", "item.anvilcraft.exp_gem": "ɯǝ⅁ dxƎ", + "item.anvilcraft.exp_gem_block": "ʞɔoꞁᗺ ɯǝ⅁ dxƎ", + "item.anvilcraft.exposed_copper_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɹǝddoƆ pǝsodxƎ", "item.anvilcraft.feather_amulet": "ʇǝꞁnɯⱯ ɹǝɥʇɐǝℲ", + "item.anvilcraft.ferrite_core_magnet_block": "ʞɔoꞁᗺ ʇǝuᵷɐW ǝɹoƆ ǝʇᴉɹɹǝℲ", "item.anvilcraft.filter": "ɹǝʇꞁᴉℲ", + "item.anvilcraft.fish_tank": "ʞuɐ⟘ ɥsᴉℲ", + "item.anvilcraft.flint_block": "ʞɔoꞁᗺ ʇuᴉꞁℲ", "item.anvilcraft.flour": "ɹnoꞁℲ", + "item.anvilcraft.fluid_tank": "ʞuɐ⟘ pᴉnꞁℲ", "item.anvilcraft.four_to_one_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS ǝuO oʇ ɹnoℲ", + "item.anvilcraft.frost_anvil": "ꞁᴉʌuⱯ ʇsoɹℲ", + "item.anvilcraft.frost_glass": "ssɐꞁ⅁ ʇsoɹℲ", + "item.anvilcraft.frost_grindstone": "ǝuoʇspuᴉɹ⅁ ʇsoɹℲ", "item.anvilcraft.frost_metal_axe": "ǝxⱯ ꞁɐʇǝW ʇsoɹℲ", + "item.anvilcraft.frost_metal_block": "ʞɔoꞁᗺ ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.frost_metal_heavy_halberd": "pɹǝqꞁɐH ʎʌɐǝH ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.frost_metal_hoe": "ǝoH ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.frost_metal_ingot": "ʇoᵷuI ꞁɐʇǝW ʇsoɹℲ", @@ -791,66 +905,185 @@ "item.anvilcraft.frost_metal_shovel": "ꞁǝʌoɥS ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.frost_metal_sword": "pɹoʍS ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.frost_metal_upgrade_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS", + "item.anvilcraft.frost_smithing_table": "ǝꞁqɐ⟘ ᵷuᴉɥʇᴉɯS ʇsoɹℲ", "item.anvilcraft.gem_amulet": "ʇǝꞁnɯⱯ ɯǝ⅁", "item.anvilcraft.geode": "ǝpoǝ⅁", "item.anvilcraft.geode.find": "%s pǝʇɐɔoꞁ 'ǝpoǝᵷ ʇsʎɥʇǝɯɐ pǝʇɔǝdsnS", + "item.anvilcraft.giant_anvil": "ꞁᴉʌuⱯ ʇuɐᴉ⅁", + "item.anvilcraft.glowing_netherite_block": "ʞɔoꞁᗺ ǝʇᴉɹǝɥʇǝN ᵷuᴉʍoꞁ⅁", + "item.anvilcraft.glowing_tungsten_block": "ʞɔoꞁᗺ uǝʇsᵷun⟘ ᵷuᴉʍoꞁ⅁", "item.anvilcraft.gray_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ʎɐɹ⅁", + "item.anvilcraft.gray_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", + "item.anvilcraft.gray_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", + "item.anvilcraft.gray_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", + "item.anvilcraft.gray_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁", "item.anvilcraft.green_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ uǝǝɹ⅁", + "item.anvilcraft.green_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", + "item.anvilcraft.green_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", + "item.anvilcraft.green_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", + "item.anvilcraft.green_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ uǝǝɹ⅁", "item.anvilcraft.guide_book": "ʞooᗺ ǝpᴉn⅁ ʇɟɐɹƆꞁᴉʌuⱯ", + "item.anvilcraft.gunpowder_block": "ʞɔoꞁᗺ ɹǝpʍodun⅁", "item.anvilcraft.hardend_resin": "uᴉsǝᴚ puǝpɹɐH", + "item.anvilcraft.heat_collector": "ɹoʇɔǝꞁꞁoƆ ʇɐǝH", + "item.anvilcraft.heated_netherite_block": "ʞɔoꞁᗺ ǝʇᴉɹǝɥʇǝN pǝʇɐǝH", + "item.anvilcraft.heated_tungsten_block": "ʞɔoꞁᗺ uǝʇsᵷun⟘ pǝʇɐǝH", + "item.anvilcraft.heater": "ɹǝʇɐǝH", "item.anvilcraft.heavy_halberd_core": "ǝɹoƆ pɹǝqꞁɐH ʎʌɐǝH", + "item.anvilcraft.heavy_iron_beam": "ɯɐǝᗺ uoɹI ʎʌɐǝH", + "item.anvilcraft.heavy_iron_block": "ʞɔoꞁᗺ uoɹI ʎʌɐǝH", + "item.anvilcraft.heavy_iron_column": "uɯnꞁoƆ uoɹI ʎʌɐǝH", + "item.anvilcraft.heavy_iron_door": "ɹooᗡ uoɹI ʎʌɐǝH", + "item.anvilcraft.heavy_iron_plate": "ǝʇɐꞁԀ uoɹI ʎʌɐǝH", + "item.anvilcraft.heavy_iron_trapdoor": "ɹoopdɐɹ⟘ uoɹI ʎʌɐǝH", + "item.anvilcraft.heavy_iron_wall": "ꞁꞁɐM uoɹI ʎʌɐǝH", + "item.anvilcraft.heliostats": "sʇɐʇsoᴉꞁǝH", "item.anvilcraft.heliostats.pos_set": "%s ǝʇɐᴉpɐɹɹᴉ ꞁꞁᴉM", + "item.anvilcraft.hollow_magnet_block": "ʞɔoꞁᗺ ʇǝuᵷɐW ʍoꞁꞁoH", + "item.anvilcraft.impact_pile": "ǝꞁᴉԀ ʇɔɐdɯI", + "item.anvilcraft.incandescent_netherite_block": "ʞɔoꞁᗺ ǝʇᴉɹǝɥʇǝN ʇuǝɔsǝpuɐɔuI", + "item.anvilcraft.incandescent_tungsten_block": "ʞɔoꞁᗺ uǝʇsᵷun⟘ ʇuǝɔsǝpuɐɔuI", + "item.anvilcraft.induction_light": "ʇɥᵷᴉꞀ uoᴉʇɔnpuI", "item.anvilcraft.inherent_enchantment.tooltip": ":sʇuǝɯʇuɐɥɔuǝ ʇuǝɹǝɥuI", "item.anvilcraft.ionocraft": "ʇɟɐɹɔouoI", "item.anvilcraft.ionocraft_backpack": "ʞɔɐdʞɔɐᗺ ʇɟɐɹɔouoI", "item.anvilcraft.ionocraft_backpack.flight_time": "s%d :ǝɯᴉ⟘ ʇɥᵷᴉꞁℲ", "item.anvilcraft.ionocraft_backpack.flight_time_energy": "s%s :ǝɯᴉ⟘ ʇɥᵷᴉꞁℲ 'ՐW%s :ʎᵷɹǝuƎ ᵷuᴉuᴉɐɯǝᴚ", + "item.anvilcraft.item_collector": "ɹoʇɔǝꞁꞁoƆ ɯǝʇI", + "item.anvilcraft.item_detector": "ɹoʇɔǝʇǝᗡ ɯǝʇI", + "item.anvilcraft.jewelcrafting_table": "ǝꞁqɐ⟘ ᵷuᴉʇɟɐɹɔꞁǝʍǝՐ", + "item.anvilcraft.large_cake": "ǝʞɐƆ ǝᵷɹɐꞀ", + "item.anvilcraft.large_fluid_tank": "ʞuɐ⟘ pᴉnꞁℲ ǝᵷɹɐꞀ", + "item.anvilcraft.laser_receiver": "ɹǝʌᴉǝɔǝᴚ ɹǝsɐꞀ", + "item.anvilcraft.lead_block": "ʞɔoꞁᗺ pɐǝꞀ", "item.anvilcraft.lead_ingot": "ʇoᵷuI pɐǝꞀ", "item.anvilcraft.lead_nugget": "ʇǝᵷᵷnN pɐǝꞀ", + "item.anvilcraft.lead_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ pɐǝꞀ", "item.anvilcraft.levitation_powder": "ɹǝpʍoԀ uoᴉʇɐʇᴉʌǝꞀ", + "item.anvilcraft.levitation_powder_block": "ʞɔoꞁᗺ ɹǝpʍoԀ uoᴉʇɐʇᴉʌǝꞀ", "item.anvilcraft.light_blue_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_blue_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_blue_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_blue_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_blue_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝnꞁᗺ ʇɥᵷᴉꞀ", "item.anvilcraft.light_gray_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_gray_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_gray_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_gray_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", + "item.anvilcraft.light_gray_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʎɐɹ⅁ ʇɥᵷᴉꞀ", "item.anvilcraft.lime_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝɯᴉꞀ", "item.anvilcraft.lime_powder": "ɹǝpʍoԀ ǝɯᴉꞀ", + "item.anvilcraft.lime_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", + "item.anvilcraft.lime_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", + "item.anvilcraft.lime_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", + "item.anvilcraft.lime_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝɯᴉꞀ", + "item.anvilcraft.load_monitor": "ɹoʇᴉuoW pɐoꞀ", "item.anvilcraft.magenta_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ɐʇuǝᵷɐW", + "item.anvilcraft.magenta_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", + "item.anvilcraft.magenta_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", + "item.anvilcraft.magenta_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", + "item.anvilcraft.magenta_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ɐʇuǝᵷɐW", "item.anvilcraft.magnet": "ʇǝuᵷɐW", + "item.anvilcraft.magnet_block": "ʞɔoꞁᗺ ʇǝuᵷɐW", "item.anvilcraft.magnet_ingot": "ʇoᵷuI ʇǝuᵷɐW", + "item.anvilcraft.magnetic_chute": "ǝʇnɥƆ ɔᴉʇǝuᵷɐW", + "item.anvilcraft.magnetoelectric_core": "ǝɹoƆ ɔᴉɹʇɔǝꞁǝoʇǝuᵷɐW", "item.anvilcraft.melt_gem_bucket": "ʇǝʞɔnᗺ ɯǝ⅁ ʇꞁǝW", + "item.anvilcraft.menger_sponge": "ǝᵷuodS ɹǝᵷuǝW", + "item.anvilcraft.mineral_fountain": "uᴉɐʇunoℲ ꞁɐɹǝuᴉW", + "item.anvilcraft.mob_amber_block": "ʞɔoꞁᗺ ɹǝqɯⱯ qoW", "item.anvilcraft.multiphase_matter": "ɹǝʇʇɐW ǝsɐɥdᴉʇꞁnW", + "item.anvilcraft.multiphase_matter_block": "ʞɔoꞁᗺ ɹǝʇʇɐW ǝsɐɥdᴉʇꞁnW", "item.anvilcraft.multiphase_transcendium": "ɯnᴉpuǝɔsuɐɹ⟘ ǝsɐɥdᴉʇꞁnW", "item.anvilcraft.multitool": "ꞁooʇᴉʇꞁnW", "item.anvilcraft.nature_amulet": "ʇǝꞁnɯⱯ ǝɹnʇɐN", "item.anvilcraft.negative_matter": "ɹǝʇʇɐW ǝʌᴉʇɐᵷǝN", + "item.anvilcraft.negative_matter_block": "ʞɔoꞁᗺ ɹǝʇʇɐW ǝʌᴉʇɐᵷǝN", "item.anvilcraft.negative_matter_nugget": "ʇǝᵷᵷnN ɹǝʇʇɐW ǝʌᴉʇɐᵷǝN", + "item.anvilcraft.neoforge": "ǝᵷɹoɟoǝN", + "item.anvilcraft.nesting_shulker_box": "xoᗺ ɹǝʞꞁnɥS ᵷuᴉʇsǝN", + "item.anvilcraft.nether_dust": "ʇsnᗡ ɹǝɥʇǝN", "item.anvilcraft.netherite_crystal_nucleus": "snǝꞁɔnN ꞁɐʇsʎɹƆ ǝʇᴉɹǝɥʇǝN", + "item.anvilcraft.neutron_irradiator": "ɹoʇɐᴉpɐɹɹI uoɹʇnǝN", "item.anvilcraft.neutronium_ingot": "ʇoᵷuI ɯnᴉuoɹʇnǝN", "item.anvilcraft.oil_bucket": "ʇǝʞɔnᗺ ꞁᴉO", "item.anvilcraft.orange_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝᵷuɐɹO", + "item.anvilcraft.orange_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", + "item.anvilcraft.orange_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", + "item.anvilcraft.orange_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", + "item.anvilcraft.orange_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝᵷuɐɹO", + "item.anvilcraft.over_nesting_shulker_box": "xoᗺ ɹǝʞꞁnɥS ᵷuᴉʇsǝN ɹǝʌO", + "item.anvilcraft.overheated_ember_metal_block": "ʞɔoꞁᗺ ꞁɐʇǝW ɹǝqɯƎ pǝʇɐǝɥɹǝʌO", + "item.anvilcraft.overseer": "ɹǝǝsɹǝʌO", + "item.anvilcraft.oxidized_copper_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɹǝddoƆ pǝzᴉpᴉxO", "item.anvilcraft.permutation_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS uoᴉʇɐʇnɯɹǝԀ", + "item.anvilcraft.piezoelectric_crystal": "ꞁɐʇsʎɹƆ ɔᴉɹʇɔǝꞁǝozǝᴉԀ", "item.anvilcraft.pill": "ꞁꞁᴉԀ", "item.anvilcraft.pill.tooltip": "ʎꞁʞɔᴉnb uǝʞɐʇ ǝq uɐɔ 'sʇɔǝɟɟǝ ᵷuᴉpuodsǝɹɹoɔ ǝʌǝᴉɥɔɐ oʇ uoᴉʇod ɥʇᴉʍ ɹǝɥʇǝᵷoʇ ǝpɐɯ sꞁꞁᴉԀ", "item.anvilcraft.pill_box": "xoᗺ ꞁꞁᴉԀ", "item.anvilcraft.pink_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ʞuᴉԀ", + "item.anvilcraft.pink_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", + "item.anvilcraft.pink_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", + "item.anvilcraft.pink_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", + "item.anvilcraft.pink_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʞuᴉԀ", + "item.anvilcraft.plutonium_block": "ʞɔoꞁᗺ ɯnᴉuoʇnꞁԀ", "item.anvilcraft.plutonium_ingot": "ʇoᵷuI ɯnᴉuoʇnꞁԀ", "item.anvilcraft.plutonium_nugget": "ʇǝᵷᵷnN ɯnᴉuoʇnꞁԀ", + "item.anvilcraft.plutonium_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɯnᴉuoʇnꞁԀ", + "item.anvilcraft.polished_flint_block": "ʞɔoꞁᗺ ʇuᴉꞁℲ pǝɥsᴉꞁoԀ", + "item.anvilcraft.polished_heavy_iron_block": "ʞɔoꞁᗺ uoɹI ʎʌɐǝH pǝɥsᴉꞁoԀ", + "item.anvilcraft.polished_heavy_iron_slab": "qɐꞁS uoɹI ʎʌɐǝH pǝɥsᴉꞁoԀ", + "item.anvilcraft.polished_heavy_iron_stairs": "sɹᴉɐʇS uoɹI ʎʌɐǝH pǝɥsᴉꞁoԀ", + "item.anvilcraft.power_converter_big": "ᵷᴉᗺ ɹǝʇɹǝʌuoƆ ɹǝʍoԀ", + "item.anvilcraft.power_converter_middle": "ǝꞁppᴉW ɹǝʇɹǝʌuoƆ ɹǝʍoԀ", + "item.anvilcraft.power_converter_small": "ꞁꞁɐɯS ɹǝʇɹǝʌuoƆ ɹǝʍoԀ", + "item.anvilcraft.powered_sliding_rail": "ꞁᴉɐᴚ ᵷuᴉpᴉꞁS pǝɹǝʍoԀ", "item.anvilcraft.prismarine_blade": "ǝpɐꞁᗺ ǝuᴉɹɐɯsᴉɹԀ", "item.anvilcraft.prismarine_cluster": "ɹǝʇsnꞁƆ ǝuᴉɹɐɯsᴉɹԀ", "item.anvilcraft.processor": "ɹossǝɔoɹԀ", + "item.anvilcraft.propel_piston": "uoʇsᴉԀ ꞁǝdoɹԀ", + "item.anvilcraft.pulse_generator": "ɹoʇɐɹǝuǝ⅁ ǝsꞁnԀ", "item.anvilcraft.purple_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝꞁdɹnԀ", + "item.anvilcraft.purple_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", + "item.anvilcraft.purple_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", + "item.anvilcraft.purple_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", + "item.anvilcraft.purple_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝꞁdɹnԀ", + "item.anvilcraft.quartz_sand": "puɐS zʇɹɐnꝹ", "item.anvilcraft.raw_lead": "pɐǝꞀ ʍɐᴚ", + "item.anvilcraft.raw_lead_block": "ʞɔoꞁᗺ pɐǝꞀ ʍɐᴚ", "item.anvilcraft.raw_silver": "ɹǝʌꞁᴉS ʍɐᴚ", + "item.anvilcraft.raw_silver_block": "ʞɔoꞁᗺ ɹǝʌꞁᴉS ʍɐᴚ", "item.anvilcraft.raw_tin": "uᴉ⟘ ʍɐᴚ", + "item.anvilcraft.raw_tin_block": "ʞɔoꞁᗺ uᴉ⟘ ʍɐᴚ", "item.anvilcraft.raw_titanium": "ɯnᴉuɐʇᴉ⟘ ʍɐᴚ", + "item.anvilcraft.raw_titanium_block": "ʞɔoꞁᗺ ɯnᴉuɐʇᴉ⟘ ʍɐᴚ", "item.anvilcraft.raw_tungsten": "uǝʇsᵷun⟘ ʍɐᴚ", + "item.anvilcraft.raw_tungsten_block": "ʞɔoꞁᗺ uǝʇsᵷun⟘ ʍɐᴚ", "item.anvilcraft.raw_uranium": "ɯnᴉuɐɹ∩ ʍɐᴚ", + "item.anvilcraft.raw_uranium_block": "ʞɔoꞁᗺ ɯnᴉuɐɹ∩ ʍɐᴚ", "item.anvilcraft.raw_zinc": "ɔuᴉZ ʍɐᴚ", + "item.anvilcraft.raw_zinc_block": "ʞɔoꞁᗺ ɔuᴉZ ʍɐᴚ", "item.anvilcraft.recovery_pearl": "ꞁɹɐǝԀ ʎɹǝʌoɔǝᴚ", "item.anvilcraft.red_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ pǝᴚ", + "item.anvilcraft.red_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", + "item.anvilcraft.red_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", + "item.anvilcraft.red_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", + "item.anvilcraft.red_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ pǝᴚ", + "item.anvilcraft.redhot_netherite_block": "ʞɔoꞁᗺ ǝʇᴉɹǝɥʇǝN ʇoɥpǝᴚ", + "item.anvilcraft.redhot_tungsten_block": "ʞɔoꞁᗺ uǝʇsᵷun⟘ ʇoɥpǝᴚ", + "item.anvilcraft.remote_transmission_pole": "ǝꞁoԀ uoᴉssᴉɯsuɐɹ⟘ ǝʇoɯǝᴚ", + "item.anvilcraft.resentful_amber_block": "ʞɔoꞁᗺ ɹǝqɯⱯ ꞁnɟʇuǝsǝᴚ", "item.anvilcraft.resin": "uᴉsǝᴚ", + "item.anvilcraft.resin_block": "ʞɔoꞁᗺ uᴉsǝᴚ", "item.anvilcraft.resonator_core": "ǝɹoƆ ɹoʇɐuosǝᴚ", + "item.anvilcraft.rotten_flesh_block": "ʞɔoꞁᗺ ɥsǝꞁℲ uǝʇʇoᴚ", + "item.anvilcraft.royal_anvil": "ꞁᴉʌuⱯ ꞁɐʎoᴚ", "item.anvilcraft.royal_anvil_hammer": "ɹǝɯɯɐH ꞁᴉʌuⱯ ꞁɐʎoᴚ", "item.anvilcraft.royal_dragon_rod": "poᴚ uoᵷɐɹᗡ ꞁɐʎoᴚ", + "item.anvilcraft.royal_grindstone": "ǝuoʇspuᴉɹ⅁ ꞁɐʎoᴚ", + "item.anvilcraft.royal_smithing_table": "ǝꞁqɐ⟘ ᵷuᴉɥʇᴉɯS ꞁɐʎoᴚ", "item.anvilcraft.royal_steel_axe": "ǝxⱯ ꞁǝǝʇS ꞁɐʎoᴚ", + "item.anvilcraft.royal_steel_block": "ʞɔoꞁᗺ ꞁǝǝʇS ꞁɐʎoᴚ", "item.anvilcraft.royal_steel_hoe": "ǝoH ꞁǝǝʇS ꞁɐʎoᴚ", "item.anvilcraft.royal_steel_ingot": "ʇoᵷuI ꞁǝǝʇS ꞁɐʎoᴚ", "item.anvilcraft.royal_steel_nugget": "ʇǝᵷᵷnN ꞁǝǝʇS ꞁɐʎoᴚ", @@ -860,51 +1093,101 @@ "item.anvilcraft.royal_steel_upgrade_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS", "item.anvilcraft.ruby": "ʎqnᴚ", "item.anvilcraft.ruby_amulet": "ʇǝꞁnɯⱯ ʎqnᴚ", + "item.anvilcraft.ruby_block": "ʞɔoꞁᗺ ʎqnᴚ", + "item.anvilcraft.ruby_laser": "ɹǝsɐꞀ ʎqnᴚ", + "item.anvilcraft.ruby_prism": "ɯsᴉɹԀ ʎqnᴚ", "item.anvilcraft.sapphire": "ǝɹᴉɥddɐS", "item.anvilcraft.sapphire_amulet": "ʇǝꞁnɯⱯ ǝɹᴉɥddɐS", + "item.anvilcraft.sapphire_block": "ʞɔoꞁᗺ ǝɹᴉɥddɐS", "item.anvilcraft.sea_heart_shell": "ꞁꞁǝɥS ʇɹɐǝH ɐǝS", "item.anvilcraft.sea_heart_shell_shard": "pɹɐɥS ꞁꞁǝɥS ʇɹɐǝH ɐǝS", "item.anvilcraft.seeds_pack": "ʞɔɐԀ spǝǝS", + "item.anvilcraft.shulker_container": "ɹǝuᴉɐʇuoƆ ɹǝʞꞁnɥS", "item.anvilcraft.silence_amulet": "ʇǝꞁnɯⱯ ǝɔuǝꞁᴉS", + "item.anvilcraft.silver_block": "ʞɔoꞁᗺ ɹǝʌꞁᴉS", "item.anvilcraft.silver_ingot": "ʇoᵷuI ɹǝʌꞁᴉS", "item.anvilcraft.silver_nugget": "ʇǝᵷᵷnN ɹǝʌꞁᴉS", + "item.anvilcraft.silver_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɹǝʌꞁᴉS", + "item.anvilcraft.singularity_crystal": "ꞁɐʇsʎɹƆ ʎʇᴉɹɐꞁnᵷuᴉS", + "item.anvilcraft.sliding_rail": "ꞁᴉɐᴚ ᵷuᴉpᴉꞁS", + "item.anvilcraft.sliding_rail_stop": "doʇS ꞁᴉɐᴚ ᵷuᴉpᴉꞁS", + "item.anvilcraft.smooth_royal_steel_block": "ʞɔoꞁᗺ ꞁǝǝʇS ꞁɐʎoᴚ ɥʇooɯS", + "item.anvilcraft.space_overcompressor": "ɹossǝɹdɯoɔɹǝʌO ǝɔɐdS", + "item.anvilcraft.spectral_anvil": "ꞁᴉʌuⱯ ꞁɐɹʇɔǝdS", "item.anvilcraft.spectral_slingshot": "ʇoɥsᵷuᴉꞁS ꞁɐɹʇɔǝdS", "item.anvilcraft.spectral_slingshot.unload_return": "pǝpɐoꞁu∩ uǝɥʍ pǝuɹnʇǝᴚ", "item.anvilcraft.spectral_slingshot.unload_vanish": "pǝpɐoꞁu∩ uǝɥʍ sǝɥsᴉuɐɅ", "item.anvilcraft.spectral_weapon_launcher": "ɹǝɥɔunɐꞀ uodɐǝM ꞁɐɹʇɔǝdS", "item.anvilcraft.sponge_gemmule": "ǝꞁnɯɯǝ⅁ ǝᵷuodS", "item.anvilcraft.stable_neutronium_ingot": "ʇoᵷuI ɯnᴉuoɹʇnǝN ǝꞁqɐʇS", + "item.anvilcraft.stamping_platform": "ɯɹoɟʇɐꞁԀ ᵷuᴉdɯɐʇS", "item.anvilcraft.structure_tool": "ꞁoo⟘ ǝɹnʇɔnɹʇS", + "item.anvilcraft.sturdy_deepslate": "ǝʇɐꞁsdǝǝᗡ ʎpɹnʇS", + "item.anvilcraft.sugar_block": "ʞɔoꞁᗺ ɹɐᵷnS", "item.anvilcraft.supercapacitor": "ɹoʇᴉɔɐdɐɔɹǝdnS", "item.anvilcraft.supercapacitor_empty": "ɹoʇᴉɔɐdɐɔɹǝdnS ʎʇdɯƎ", + "item.anvilcraft.supercritical_nesting_shulker_box": "xoᗺ ɹǝʞꞁnɥS ᵷuᴉʇsǝN ꞁɐɔᴉʇᴉɹɔɹǝdnS", + "item.anvilcraft.tempering_glass": "ssɐꞁ⅁ ᵷuᴉɹǝdɯǝ⟘", + "item.anvilcraft.tesla_tower": "ɹǝʍo⟘ ɐꞁsǝ⟘", + "item.anvilcraft.tin_block": "ʞɔoꞁᗺ uᴉ⟘", "item.anvilcraft.tin_can": "uɐƆ uᴉ⟘", "item.anvilcraft.tin_ingot": "ʇoᵷuI uᴉ⟘", "item.anvilcraft.tin_nugget": "ʇǝᵷᵷnN uᴉ⟘", + "item.anvilcraft.tin_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ uᴉ⟘", + "item.anvilcraft.titanium_block": "ʞɔoꞁᗺ ɯnᴉuɐʇᴉ⟘", "item.anvilcraft.titanium_ingot": "ʇoᵷuI ɯnᴉuɐʇᴉ⟘", "item.anvilcraft.titanium_nugget": "ʇǝᵷᵷnN ɯnᴉuɐʇᴉ⟘", + "item.anvilcraft.titanium_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɯnᴉuɐʇᴉ⟘", "item.anvilcraft.topaz": "zɐdo⟘", "item.anvilcraft.topaz_amulet": "ʇǝꞁnɯⱯ zɐdo⟘", + "item.anvilcraft.topaz_block": "ʞɔoꞁᗺ zɐdo⟘", "item.anvilcraft.totem_of_rage": "ǝᵷɐᴚ ɟo ɯǝʇo⟘", "item.anvilcraft.totem_of_recovery": "ʎɹǝʌoɔǝᴚ ɟo ɯǝʇo⟘", + "item.anvilcraft.transcendence_anvil": "ꞁᴉʌuⱯ ǝɔuǝpuǝɔsuɐɹ⟘", "item.anvilcraft.transcendence_anvil_hammer": "ɹǝɯɯɐH ꞁᴉʌuⱯ ǝɔuǝpuǝɔsuɐɹ⟘", "item.anvilcraft.transcendence_dragon_rod": "poᴚ uoᵷɐɹᗡ ǝɔuǝpuǝɔsuɐɹ⟘", "item.anvilcraft.transcendence_heavy_halberd": "pɹǝqꞁɐH ʎʌɐǝH ǝɔuǝpuǝɔsuɐɹ⟘", "item.anvilcraft.transcendence_resonator": "ɹoʇɐuosǝᴚ ǝɔuǝpuǝɔsuɐɹ⟘", + "item.anvilcraft.transcendium_block": "ʞɔoꞁᗺ ɯnᴉpuǝɔsuɐɹ⟘", "item.anvilcraft.transcendium_ingot": "ʇoᵷuI ɯnᴉpuǝɔsuɐɹ⟘", "item.anvilcraft.transcendium_nugget": "ʇǝᵷᵷnN ɯnᴉpuǝɔsuɐɹ⟘", "item.anvilcraft.transcendium_upgrade_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS", + "item.anvilcraft.transmission_pole": "ǝꞁoԀ uoᴉssᴉɯsuɐɹ⟘", + "item.anvilcraft.transparent_crafting_table": "ǝꞁqɐ⟘ ᵷuᴉʇɟɐɹƆ ʇuǝɹɐdsuɐɹ⟘", + "item.anvilcraft.tungsten_block": "ʞɔoꞁᗺ uǝʇsᵷun⟘", "item.anvilcraft.tungsten_ingot": "ʇoᵷuI uǝʇsᵷun⟘", "item.anvilcraft.tungsten_nugget": "ʇǝᵷᵷnN uǝʇsᵷun⟘", + "item.anvilcraft.tungsten_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ uǝʇsᵷun⟘", "item.anvilcraft.two_to_one_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS ǝuO oʇ oʍ⟘", + "item.anvilcraft.uranium_block": "ʞɔoꞁᗺ ɯnᴉuɐɹ∩", "item.anvilcraft.uranium_ingot": "ʇoᵷuI ɯnᴉuɐɹ∩", "item.anvilcraft.uranium_nugget": "ʇǝᵷᵷnN ɯnᴉuɐɹ∩", + "item.anvilcraft.uranium_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɯnᴉuɐɹ∩", "item.anvilcraft.utusan": "uɐsnʇ∩", + "item.anvilcraft.void_energy_collector": "ɹoʇɔǝꞁꞁoƆ ʎᵷɹǝuƎ pᴉoɅ", "item.anvilcraft.void_matter": "ɹǝʇʇɐW pᴉoɅ", + "item.anvilcraft.void_matter_block": "ʞɔoꞁᗺ ɹǝʇʇɐW pᴉoɅ", + "item.anvilcraft.void_stone": "ǝuoʇS pᴉoɅ", + "item.anvilcraft.weathered_copper_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɹǝddoƆ pǝɹǝɥʇɐǝM", "item.anvilcraft.white_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝʇᴉɥM", + "item.anvilcraft.white_chocolate_block": "ʞɔoꞁᗺ ǝʇɐꞁoɔoɥƆ ǝʇᴉɥM", + "item.anvilcraft.white_chocolate_slab": "qɐꞁS ǝʇɐꞁoɔoɥƆ ǝʇᴉɥM", + "item.anvilcraft.white_chocolate_stairs": "sɹᴉɐʇS ǝʇɐꞁoɔoɥƆ ǝʇᴉɥM", + "item.anvilcraft.white_hole": "ǝꞁoH ǝʇᴉɥM", + "item.anvilcraft.white_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", + "item.anvilcraft.white_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", + "item.anvilcraft.white_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", + "item.anvilcraft.white_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ǝʇᴉɥM", "item.anvilcraft.wood_fiber": "ɹǝqᴉℲ pooM", "item.anvilcraft.yellow_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ʍoꞁꞁǝ⅄", + "item.anvilcraft.yellow_reinforced_concrete": "ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", + "item.anvilcraft.yellow_reinforced_concrete_slab": "qɐꞁS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", + "item.anvilcraft.yellow_reinforced_concrete_stair": "ɹᴉɐʇS ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", + "item.anvilcraft.yellow_reinforced_concrete_wall": "ꞁꞁɐM ǝʇǝɹɔuoƆ pǝɔɹoɟuᴉǝᴚ ʍoꞁꞁǝ⅄", + "item.anvilcraft.zinc_block": "ʞɔoꞁᗺ ɔuᴉZ", "item.anvilcraft.zinc_ingot": "ʇoᵷuI ɔuᴉZ", "item.anvilcraft.zinc_nugget": "ʇǝᵷᵷnN ɔuᴉZ", + "item.anvilcraft.zinc_pressure_plate": "ǝʇɐꞁԀ ǝɹnssǝɹԀ ɔuᴉZ", "itemGroup.anvilcraft.building_blocks": "sʞɔoꞁᗺ ᵷuᴉpꞁᴉnᗺ :ʇɟɐɹƆꞁᴉʌuⱯ", "itemGroup.anvilcraft.functional_blocks": "sʞɔoꞁᗺ ꞁɐuoᴉʇɔunℲ :ʇɟɐɹƆꞁᴉʌuⱯ", "itemGroup.anvilcraft.ingredients": "sʇuǝᴉpǝɹᵷuI :ʇɟɐɹƆꞁᴉʌuⱯ", @@ -1206,10 +1489,7 @@ "tooltip.anvilcraft.item.activator_sliding_rail": "ʇᴉ ɹǝʌo ᵷuᴉpᴉꞁs sʞɔoꞁq sǝʇɐʌᴉʇɔⱯ", "tooltip.anvilcraft.item.active_silencer": "spunos ʎqɹɐǝu pǝʇɔǝꞁǝs ǝʇɐuᴉɯᴉꞁƎ", "tooltip.anvilcraft.item.advanced_comparator": "sǝpoɯ uosᴉɹɐdɯoɔ ʍopuᴉM puɐ sᴉsǝɹǝʇsʎH sʇɹoddnS", - "tooltip.anvilcraft.item.amulet_box.desc": "sɯǝʇoʇ ɹo sʇǝꞁnɯɐ ǝʌᴉʇɔɐ ǝꞁdᴉʇꞁnɯ sǝɹoʇS", - "tooltip.anvilcraft.item.amulet_box.fullness": "%2$d / %1$d :ssǝuꞁꞁnℲ", - "tooltip.anvilcraft.item.amulet_box.line_1": "⸵sɯǝʇoʇ ǝɥʇ ǝʌǝᴉɹʇǝɹ oʇ ʞɔᴉꞁɔ-ʇɥᵷᴉɹ-ʇɟᴉɥs puɐ 'ʎɹoʇuǝʌuᴉ ɹnoʎ uo ᵷuᴉʎpu∩ ɟo sɯǝʇo⟘ ǝɥʇ ǝɹoʇs oʇ ʞɔᴉꞁɔ ʇɥᵷᴉᴚ", - "tooltip.anvilcraft.item.amulet_box.line_2": "˙ʇɟᴉᵷ ʇǝɹɔǝs ɐ ǝʌᴉǝɔǝɹ ʎɐɯ noʎ 'ɯǝʇoʇ ǝɥʇ ᵷuᴉɯnsuoɔ ɹǝʇɟɐ puɐ 'pǝpǝǝu uǝɥʍ xoq ǝɥʇ uᴉ sɯǝʇoʇ ǝɥʇ ǝɯnsuoɔ 'ᵷuᴉpꞁoɥ uǝɥM", + "tooltip.anvilcraft.item.amulet_box": "˙ʇɟᴉᵷ ʇǝɹɔǝs ɐ ǝʌᴉǝɔǝɹ ʎɐɯ noʎ 'ɯǝʇoʇ ǝɥʇ ᵷuᴉɯnsuoɔ ɹǝʇɟɐ puɐ 'pǝpǝǝu uǝɥʍ xoq ǝɥʇ uᴉ sɯǝʇoʇ ǝɥʇ ǝɯnsuoɔ 'ᵷuᴉpꞁoɥ uǝɥM\n⸵sɯǝʇoʇ ǝɥʇ ǝʌǝᴉɹʇǝɹ oʇ ʞɔᴉꞁɔ-ʇɥᵷᴉɹ-ʇɟᴉɥs puɐ 'ʎɹoʇuǝʌuᴉ ɹnoʎ uᴉ sɯǝʇo⟘ ǝɹoʇs oʇ ʞɔᴉꞁɔ-ʇɥᵷᴉᴚ\nsɯǝʇoʇ ɹo sʇǝꞁnɯɐ ǝʌᴉʇɔɐ ǝꞁdᴉʇꞁnɯ sǝɹoʇS", "tooltip.anvilcraft.item.anvil_amulet": "ǝᵷɐɯɐp ꞁᴉʌuɐ oʇ ʎʇᴉunɯɯᴉ sʇuɐɹ⅁", "tooltip.anvilcraft.item.anvil_hammer": "ǝɔɐɯ ɐ puɐ 'sǝꞁᵷᵷoᵷ 'ɥɔuǝɹʍ ɐ 'ꞁᴉʌuɐ uɐ 'ɹǝɯɯɐɥ ɐ s,ʇI", "tooltip.anvilcraft.item.batch_crafter": "Mʞ ߈ ɟo uoᴉʇdɯnsuoɔ ɹǝʍod ɐ ɥʇᴉʍ 'ǝɔuo ʇɐ sɯǝʇᴉ ꞁɐuɹǝʇuᴉ ꞁꞁɐ pǝʇɟɐɹɔ puɐ ꞁɐuᵷᴉs ǝuoʇspǝɹ ɐ pǝʌᴉǝɔǝᴚ", @@ -1238,10 +1518,10 @@ "tooltip.anvilcraft.item.cut_ember_metal_pillar": "ɟooɹd ɹǝɥʇᴉM", "tooltip.anvilcraft.item.cut_ember_metal_slab": "ɟooɹd ɹǝɥʇᴉM", "tooltip.anvilcraft.item.cut_ember_metal_stairs": "ɟooɹd ɹǝɥʇᴉM", - "tooltip.anvilcraft.item.cut_frost_metal_block": "ɟooɹd ɹǝɥʇᴉM", - "tooltip.anvilcraft.item.cut_frost_metal_pillar": "ɟooɹd ɹǝɥʇᴉM", - "tooltip.anvilcraft.item.cut_frost_metal_slab": "ɟooɹd ɹǝɥʇᴉM", - "tooltip.anvilcraft.item.cut_frost_metal_stairs": "ɟooɹd ɹǝɥʇᴉM", + "tooltip.anvilcraft.item.cut_frost_metal_block": "ɟooɹd uoᴉsoꞁdxƎ", + "tooltip.anvilcraft.item.cut_frost_metal_pillar": "ɟooɹd uoᴉsoꞁdxƎ", + "tooltip.anvilcraft.item.cut_frost_metal_slab": "ɟooɹd uoᴉsoꞁdxƎ", + "tooltip.anvilcraft.item.cut_frost_metal_stairs": "ɟooɹd uoᴉsoꞁdxƎ", "tooltip.anvilcraft.item.cut_heavy_iron_block": "ɟooɹd uoᴉsoꞁdxƎ", "tooltip.anvilcraft.item.cut_heavy_iron_slab": "ɟooɹd uoᴉsoꞁdxƎ", "tooltip.anvilcraft.item.cut_heavy_iron_stairs": "ɟooɹd uoᴉsoꞁdxƎ", @@ -1269,10 +1549,10 @@ "tooltip.anvilcraft.item.ferrite_core_magnet_block": "sǝᵷɹɐɥɔ ǝʇɐɹǝuǝᵷ oʇ sʞɔoꞁq ɹǝddoɔ ʇuǝɔɐɾpɐ sǝsnɐɔ 'uoʇsᴉd ǝɥʇ ʎq pǝꞁꞁnd puɐ pǝɥsnd uǝɥʍ 'ʍoꞁǝq ꞁᴉʌuɐ ǝɥʇ ᵷuᴉʇɔɐɹʇʇⱯ", "tooltip.anvilcraft.item.filter": "ʇoꞁs ɹǝʇꞁᴉɟ ʎuɐ uᴉ ǝꞁqɐs∩ ˙sɹǝʇꞁᴉɟ ɹo ᵷᴉɟuoɔ uo pǝsɐq sɯǝʇᴉ sǝɥɔʇɐW", "tooltip.anvilcraft.item.fish_tank": "˙ɥsᴉɟ ꞁɐɔᴉdoɹʇ ǝɥʇ ǝsɐǝꞁǝɹ oʇ puɐɥ uᴉ ʇǝʞɔnq ɥsᴉɟ ꞁɐɔᴉdoɹʇ ɐ ɥʇᴉʍ ʞuɐʇ ɥsᴉɟ ǝɥʇ ɟo ʇɹɐd ɹǝʍoꞁ ǝɥʇ ʞɔᴉꞁɔ-ʇɥᵷᴉᴚ\n˙ǝpᴉsuᴉ ɯǝʇᴉ ǝɥʇ ǝɔɐꞁd oʇ puɐɥ uᴉ ɯǝʇᴉ uɐ ɥʇᴉʍ doʇ ǝɥʇ ʞɔᴉꞁɔ-ʇɥᵷᴉᴚ\n˙ʇɔǝɟɟǝ ᵷuᴉɥʇɐǝɹq ɹǝʇɐʍɹǝpun ʎɹɐɹodɯǝʇ ɐ sǝpᴉʌoɹd pɐǝɥ ɹnoʎ uo ʇᴉ ᵷuᴉɹɐǝM\n˙sᴉsǝɥʇuʎs ꞁᴉʌuɐ pǝʇɐꞁǝɹ ɯɹoɟɹǝd oʇ ʇod ʎɯǝɥɔꞁɐ ǝɥʇ ɹoɟ ǝʇnʇᴉʇsqns ɐ sɐ pǝsn ǝq uɐɔ puɐ sʞooꞁ ʇᴉ uɐɥʇ ɹǝᴉpɹnʇs sᴉ ʇI", - "tooltip.anvilcraft.item.frost_anvil": "ɟooɹd ɹǝɥʇᴉM", - "tooltip.anvilcraft.item.frost_grindstone": "ɟooɹd ɹǝɥʇᴉM", - "tooltip.anvilcraft.item.frost_metal_block": "ɟooɹd ɹǝɥʇᴉM", - "tooltip.anvilcraft.item.frost_smithing_table": "ɟooɹd ɹǝɥʇᴉM", + "tooltip.anvilcraft.item.frost_anvil": "ɟooɹd uoᴉsoꞁdxƎ", + "tooltip.anvilcraft.item.frost_grindstone": "ɟooɹd uoᴉsoꞁdxƎ", + "tooltip.anvilcraft.item.frost_metal_block": "ɟooɹd uoᴉsoꞁdxƎ", + "tooltip.anvilcraft.item.frost_smithing_table": "ɟooɹd uoᴉsoꞁdxƎ", "tooltip.anvilcraft.item.gem_amulet": "sʇǝꞁnɯⱯ ɯǝ⅁ ɹnoɟ ꞁꞁɐ ɟo sʇɔǝɟɟǝ sǝuᴉqɯoƆ", "tooltip.anvilcraft.item.geode": "ʇᴉ ᵷuᴉsn uǝɥʍ ǝpoǝ⅁ ʇsʎɥʇǝɯⱯ ᵷuᴉpunoɹɹns ǝɥʇ puᴉℲ", "tooltip.anvilcraft.item.heat_collector": "ʇɐǝɥ ɯoɹɟ ɹǝʍod sǝʇɐɹǝuǝ⅁", @@ -1307,6 +1587,7 @@ "tooltip.anvilcraft.item.overseer": "(ǝᵷuɐɹ ϛxϛ 'sɹǝʎɐꞁ Ɛ xɐɯ) ǝᵷuɐɹ pɐoꞁ ʞunɥɔ ǝsɐǝɹɔuᴉ sɹǝʎɐꞁ ǝsɐq ɹǝɥᵷᴉH ˙ǝsɐq ꞁǝǝʇS ꞁɐʎoᴚ ƐxƐ uo ɹǝpɐoꞁ ʞunɥƆ", "tooltip.anvilcraft.item.oxidized_copper_pressure_plate": "ǝʇɐꞁd ɹǝddoɔ ɐ osꞁɐ 'ǝɯᴉʇ ᵷuᴉssǝɹd ɥʇᴉʍ sǝsɐǝɹɔuᴉ ꞁɐuᵷᴉs ǝuoʇspǝᴚ", "tooltip.anvilcraft.item.piezoelectric_crystal": "ʇᴉ uo ꞁꞁɐɟ ꞁᴉʌuɐ uɐ ʎq pǝʇɐɹǝuǝᵷ ǝᵷɹɐɥƆ", + "tooltip.anvilcraft.item.pill": "ʎꞁʞɔᴉnb uǝʞɐʇ ǝq uɐɔ 'sʇɔǝɟɟǝ ᵷuᴉpuodsǝɹɹoɔ ǝʌǝᴉɥɔɐ oʇ uoᴉʇod ɥʇᴉʍ ɹǝɥʇǝᵷoʇ ǝpɐɯ sꞁꞁᴉԀ", "tooltip.anvilcraft.item.plutonium_pressure_plate": "ǝʇɐꞁd ɯnᴉuoʇnꞁd ɐ osꞁɐ 'ʎʇᴉꞁᴉqɐɹnp ɯǝʇᴉ puɐɥ uᴉ ɹǝʎɐꞁd ǝɥʇ uo pǝsɐq ꞁɐuᵷᴉs ǝuoʇspǝɹ ɐ ʇndʇnO", "tooltip.anvilcraft.item.polished_heavy_iron_block": "ɟooɹd uoᴉsoꞁdxƎ", "tooltip.anvilcraft.item.polished_heavy_iron_slab": "ɟooɹd uoᴉsoꞁdxƎ", @@ -1380,6 +1661,12 @@ "tooltip.anvilcraft.propel_piston.remaining_energy": "%s :ʎᵷɹǝuƎ ᵷuᴉuᴉɐɯǝᴚ ", "tooltip.anvilcraft.propel_piston.remaining_push": "ǝɯᴉʇ-ʞɔoꞁq %s :ɥsnԀ ᵷuᴉuᴉɐɯǝᴚ ", "tooltip.anvilcraft.propel_piston.state": " :ǝʇɐʇS uoʇsᴉԀ ꞁǝdoɹԀ", + "tooltip.anvilcraft.property.box_contents": "%2$d / %1$d :ssǝuꞁꞁnℲ", + "tooltip.anvilcraft.property.devour_range": "%s :ǝᵷuɐᴚ ɹnoʌǝᗡ ʇuǝɹɹnƆ", + "tooltip.anvilcraft.property.devour_range.range_3": "ƐxƐ", + "tooltip.anvilcraft.property.devour_range.range_5": "ϛxϛ", + "tooltip.anvilcraft.property.devour_range.range_7": "ㄥxㄥ", + "tooltip.anvilcraft.property.devour_range.range_9": "6x6", "tooltip.anvilcraft.property.eternal": "pᴉoʌ ǝɥʇ puɐ ǝɯᴉʇ ǝɥʇ uǝʌǝ 'snʇɔɐɔ 'ǝpoꞁdxǝ 'ǝɹᴉɟ ǝunɯɯᴉ 'ǝꞁqɐʞɐǝɹqun :ꞁɐuɹǝʇƎ", "tooltip.anvilcraft.property.ferocious": "sʇuǝɯʇuɐɥɔuǝ ꞁꞁɐ ɟo ꞁǝʌǝꞁ ǝɥʇ uo pǝsɐq ʎɔuǝᴉɔᴉɟɟǝ ᵷuᴉuᴉɯ puɐ ǝᵷɐɯɐp ʞɔɐʇʇɐ ǝɔuɐɥuǝ :snoᴉɔoɹǝℲ", "tooltip.anvilcraft.property.fire_reforging": "ɐʌɐꞁ ɹo ǝɹᴉɟ uᴉ ᵷuᴉpuǝɯ :ᵷuᴉᵷɹoɟǝᴚ", diff --git a/src/generated/resources/assets/anvilcraft/lang/en_us.json b/src/generated/resources/assets/anvilcraft/lang/en_us.json index d2057cc62a..ecce3b109c 100644 --- a/src/generated/resources/assets/anvilcraft/lang/en_us.json +++ b/src/generated/resources/assets/anvilcraft/lang/en_us.json @@ -234,17 +234,29 @@ "block.anvilcraft.black_chocolate_slab": "Black Chocolate Slab", "block.anvilcraft.black_chocolate_stairs": "Black Chocolate Stairs", "block.anvilcraft.black_hole": "Black Hole", + "block.anvilcraft.black_reinforced_concrete": "Black Reinforced Concrete", + "block.anvilcraft.black_reinforced_concrete_slab": "Black Reinforced Concrete Slab", + "block.anvilcraft.black_reinforced_concrete_stair": "Black Reinforced Concrete Stair", + "block.anvilcraft.black_reinforced_concrete_wall": "Black Reinforced Concrete Wall", "block.anvilcraft.block_comparator": "Block Comparator", "block.anvilcraft.block_devourer": "Block Devourer", "block.anvilcraft.block_placer": "Block Placer", "block.anvilcraft.blue_cement": "Blue Cement", "block.anvilcraft.blue_cement_cauldron": "Blue Cement Cauldron", + "block.anvilcraft.blue_reinforced_concrete": "Blue Reinforced Concrete", + "block.anvilcraft.blue_reinforced_concrete_slab": "Blue Reinforced Concrete Slab", + "block.anvilcraft.blue_reinforced_concrete_stair": "Blue Reinforced Concrete Stair", + "block.anvilcraft.blue_reinforced_concrete_wall": "Blue Reinforced Concrete Wall", "block.anvilcraft.brass_block": "Block of Brass", "block.anvilcraft.brass_pressure_plate": "Brass Pressure Plate", "block.anvilcraft.bronze_block": "Block of Bronze", "block.anvilcraft.bronze_pressure_plate": "Bronze Pressure Plate", "block.anvilcraft.brown_cement": "Brown Cement", "block.anvilcraft.brown_cement_cauldron": "Brown Cement Cauldron", + "block.anvilcraft.brown_reinforced_concrete": "Brown Reinforced Concrete", + "block.anvilcraft.brown_reinforced_concrete_slab": "Brown Reinforced Concrete Slab", + "block.anvilcraft.brown_reinforced_concrete_stair": "Brown Reinforced Concrete Stair", + "block.anvilcraft.brown_reinforced_concrete_wall": "Brown Reinforced Concrete Wall", "block.anvilcraft.cake_base_block": "Cake Base Block", "block.anvilcraft.cake_block": "Cake Block", "block.anvilcraft.celestial_forging_anvil": "Celestial Forging Anvil", @@ -297,6 +309,10 @@ "block.anvilcraft.cut_royal_steel_stairs": "Cut Royal Steel Stairs", "block.anvilcraft.cyan_cement": "Cyan Cement", "block.anvilcraft.cyan_cement_cauldron": "Cyan Cement Cauldron", + "block.anvilcraft.cyan_reinforced_concrete": "Cyan Reinforced Concrete", + "block.anvilcraft.cyan_reinforced_concrete_slab": "Cyan Reinforced Concrete Slab", + "block.anvilcraft.cyan_reinforced_concrete_stair": "Cyan Reinforced Concrete Stair", + "block.anvilcraft.cyan_reinforced_concrete_wall": "Cyan Reinforced Concrete Wall", "block.anvilcraft.deepslate_lead_ore": "Deepslate Lead Ore", "block.anvilcraft.deepslate_silver_ore": "Deepslate Silver Ore", "block.anvilcraft.deepslate_tin_ore": "Deepslate Tin Ore", @@ -320,7 +336,6 @@ "block.anvilcraft.exp_gem_block": "Block of Experience Gem", "block.anvilcraft.exposed_copper_pressure_plate": "Exposed Copper Pressure Plate", "block.anvilcraft.ferrite_core_magnet_block": "Ferrite-Cored Block of Magnet", - "block.anvilcraft.fire_cauldron": "Fire Cauldron", "block.anvilcraft.fish_tank": "Fish Tank", "block.anvilcraft.flint_block": "Flint Block", "block.anvilcraft.fluid_tank": "Fluid Tank", @@ -334,8 +349,16 @@ "block.anvilcraft.glowing_tungsten_block": "Glowing Block of Tungsten", "block.anvilcraft.gray_cement": "Gray Cement", "block.anvilcraft.gray_cement_cauldron": "Gray Cement Cauldron", + "block.anvilcraft.gray_reinforced_concrete": "Gray Reinforced Concrete", + "block.anvilcraft.gray_reinforced_concrete_slab": "Gray Reinforced Concrete Slab", + "block.anvilcraft.gray_reinforced_concrete_stair": "Gray Reinforced Concrete Stair", + "block.anvilcraft.gray_reinforced_concrete_wall": "Gray Reinforced Concrete Wall", "block.anvilcraft.green_cement": "Green Cement", "block.anvilcraft.green_cement_cauldron": "Green Cement Cauldron", + "block.anvilcraft.green_reinforced_concrete": "Green Reinforced Concrete", + "block.anvilcraft.green_reinforced_concrete_slab": "Green Reinforced Concrete Slab", + "block.anvilcraft.green_reinforced_concrete_stair": "Green Reinforced Concrete Stair", + "block.anvilcraft.green_reinforced_concrete_wall": "Green Reinforced Concrete Wall", "block.anvilcraft.gunpowder_block": "Gunpowder Block", "block.anvilcraft.heat_collector": "Heat Collector", "block.anvilcraft.heat_collector.placement_too_close_to_another": "Too close to another heat collector", @@ -370,13 +393,29 @@ "block.anvilcraft.levitation_powder_block": "Block of Levitation Powder", "block.anvilcraft.light_blue_cement": "Light Blue Cement", "block.anvilcraft.light_blue_cement_cauldron": "Light Blue Cement Cauldron", + "block.anvilcraft.light_blue_reinforced_concrete": "Light Blue Reinforced Concrete", + "block.anvilcraft.light_blue_reinforced_concrete_slab": "Light Blue Reinforced Concrete Slab", + "block.anvilcraft.light_blue_reinforced_concrete_stair": "Light Blue Reinforced Concrete Stair", + "block.anvilcraft.light_blue_reinforced_concrete_wall": "Light Blue Reinforced Concrete Wall", "block.anvilcraft.light_gray_cement": "Light Gray Cement", "block.anvilcraft.light_gray_cement_cauldron": "Light Gray Cement Cauldron", + "block.anvilcraft.light_gray_reinforced_concrete": "Light Gray Reinforced Concrete", + "block.anvilcraft.light_gray_reinforced_concrete_slab": "Light Gray Reinforced Concrete Slab", + "block.anvilcraft.light_gray_reinforced_concrete_stair": "Light Gray Reinforced Concrete Stair", + "block.anvilcraft.light_gray_reinforced_concrete_wall": "Light Gray Reinforced Concrete Wall", "block.anvilcraft.lime_cement": "Lime Cement", "block.anvilcraft.lime_cement_cauldron": "Lime Cement Cauldron", + "block.anvilcraft.lime_reinforced_concrete": "Lime Reinforced Concrete", + "block.anvilcraft.lime_reinforced_concrete_slab": "Lime Reinforced Concrete Slab", + "block.anvilcraft.lime_reinforced_concrete_stair": "Lime Reinforced Concrete Stair", + "block.anvilcraft.lime_reinforced_concrete_wall": "Lime Reinforced Concrete Wall", "block.anvilcraft.load_monitor": "Load Monitor", "block.anvilcraft.magenta_cement": "Magenta Cement", "block.anvilcraft.magenta_cement_cauldron": "Magenta Cement Cauldron", + "block.anvilcraft.magenta_reinforced_concrete": "Magenta Reinforced Concrete", + "block.anvilcraft.magenta_reinforced_concrete_slab": "Magenta Reinforced Concrete Slab", + "block.anvilcraft.magenta_reinforced_concrete_stair": "Magenta Reinforced Concrete Stair", + "block.anvilcraft.magenta_reinforced_concrete_wall": "Magenta Reinforced Concrete Wall", "block.anvilcraft.magnet_block": "Block of Magnet", "block.anvilcraft.magnetic_chute": "Magnetic Chute", "block.anvilcraft.magnetoelectric_core": "Magnetoelectric Core", @@ -396,6 +435,10 @@ "block.anvilcraft.oil_cauldron": "Oil Cauldron", "block.anvilcraft.orange_cement": "Orange Cement", "block.anvilcraft.orange_cement_cauldron": "Orange Cement Cauldron", + "block.anvilcraft.orange_reinforced_concrete": "Orange Reinforced Concrete", + "block.anvilcraft.orange_reinforced_concrete_slab": "Orange Reinforced Concrete Slab", + "block.anvilcraft.orange_reinforced_concrete_stair": "Orange Reinforced Concrete Stair", + "block.anvilcraft.orange_reinforced_concrete_wall": "Orange Reinforced Concrete Wall", "block.anvilcraft.over_nesting_shulker_box": "Over Nesting Shulker Box", "block.anvilcraft.overheated_ember_metal_block": "Overheated Block of Ember Metal", "block.anvilcraft.overseer": "Overseer", @@ -403,6 +446,10 @@ "block.anvilcraft.piezoelectric_crystal": "Piezoelectric Crystal", "block.anvilcraft.pink_cement": "Pink Cement", "block.anvilcraft.pink_cement_cauldron": "Pink Cement Cauldron", + "block.anvilcraft.pink_reinforced_concrete": "Pink Reinforced Concrete", + "block.anvilcraft.pink_reinforced_concrete_slab": "Pink Reinforced Concrete Slab", + "block.anvilcraft.pink_reinforced_concrete_stair": "Pink Reinforced Concrete Stair", + "block.anvilcraft.pink_reinforced_concrete_wall": "Pink Reinforced Concrete Wall", "block.anvilcraft.plasma_jets": "Plasma Jets", "block.anvilcraft.plutonium_block": "Block of Plutonium", "block.anvilcraft.plutonium_pressure_plate": "Plutonium Pressure Plate", @@ -418,6 +465,10 @@ "block.anvilcraft.pulse_generator": "Pulse Generator", "block.anvilcraft.purple_cement": "Purple Cement", "block.anvilcraft.purple_cement_cauldron": "Purple Cement Cauldron", + "block.anvilcraft.purple_reinforced_concrete": "Purple Reinforced Concrete", + "block.anvilcraft.purple_reinforced_concrete_slab": "Purple Reinforced Concrete Slab", + "block.anvilcraft.purple_reinforced_concrete_stair": "Purple Reinforced Concrete Stair", + "block.anvilcraft.purple_reinforced_concrete_wall": "Purple Reinforced Concrete Wall", "block.anvilcraft.quartz_sand": "Quartz Sand", "block.anvilcraft.raw_lead_block": "Block of Raw Lead", "block.anvilcraft.raw_silver_block": "Block of Raw Silver", @@ -428,72 +479,12 @@ "block.anvilcraft.raw_zinc_block": "Block of Raw Zinc", "block.anvilcraft.red_cement": "Red Cement", "block.anvilcraft.red_cement_cauldron": "Red Cement Cauldron", + "block.anvilcraft.red_reinforced_concrete": "Red Reinforced Concrete", + "block.anvilcraft.red_reinforced_concrete_slab": "Red Reinforced Concrete Slab", + "block.anvilcraft.red_reinforced_concrete_stair": "Red Reinforced Concrete Stair", + "block.anvilcraft.red_reinforced_concrete_wall": "Red Reinforced Concrete Wall", "block.anvilcraft.redhot_netherite_block": "Redhot Block of Netherite", "block.anvilcraft.redhot_tungsten_block": "Redhot Block of Tungsten", - "block.anvilcraft.reinforced_concrete_black": "Reinforced Concrete Black", - "block.anvilcraft.reinforced_concrete_black_slab": "Reinforced Concrete Black Slab", - "block.anvilcraft.reinforced_concrete_black_stair": "Reinforced Concrete Black Stair", - "block.anvilcraft.reinforced_concrete_black_wall": "Reinforced Concrete Black Wall", - "block.anvilcraft.reinforced_concrete_blue": "Reinforced Concrete Blue", - "block.anvilcraft.reinforced_concrete_blue_slab": "Reinforced Concrete Blue Slab", - "block.anvilcraft.reinforced_concrete_blue_stair": "Reinforced Concrete Blue Stair", - "block.anvilcraft.reinforced_concrete_blue_wall": "Reinforced Concrete Blue Wall", - "block.anvilcraft.reinforced_concrete_brown": "Reinforced Concrete Brown", - "block.anvilcraft.reinforced_concrete_brown_slab": "Reinforced Concrete Brown Slab", - "block.anvilcraft.reinforced_concrete_brown_stair": "Reinforced Concrete Brown Stair", - "block.anvilcraft.reinforced_concrete_brown_wall": "Reinforced Concrete Brown Wall", - "block.anvilcraft.reinforced_concrete_cyan": "Reinforced Concrete Cyan", - "block.anvilcraft.reinforced_concrete_cyan_slab": "Reinforced Concrete Cyan Slab", - "block.anvilcraft.reinforced_concrete_cyan_stair": "Reinforced Concrete Cyan Stair", - "block.anvilcraft.reinforced_concrete_cyan_wall": "Reinforced Concrete Cyan Wall", - "block.anvilcraft.reinforced_concrete_gray": "Reinforced Concrete Gray", - "block.anvilcraft.reinforced_concrete_gray_slab": "Reinforced Concrete Gray Slab", - "block.anvilcraft.reinforced_concrete_gray_stair": "Reinforced Concrete Gray Stair", - "block.anvilcraft.reinforced_concrete_gray_wall": "Reinforced Concrete Gray Wall", - "block.anvilcraft.reinforced_concrete_green": "Reinforced Concrete Green", - "block.anvilcraft.reinforced_concrete_green_slab": "Reinforced Concrete Green Slab", - "block.anvilcraft.reinforced_concrete_green_stair": "Reinforced Concrete Green Stair", - "block.anvilcraft.reinforced_concrete_green_wall": "Reinforced Concrete Green Wall", - "block.anvilcraft.reinforced_concrete_light_blue": "Reinforced Concrete Light Blue", - "block.anvilcraft.reinforced_concrete_light_blue_slab": "Reinforced Concrete Light Blue Slab", - "block.anvilcraft.reinforced_concrete_light_blue_stair": "Reinforced Concrete Light Blue Stair", - "block.anvilcraft.reinforced_concrete_light_blue_wall": "Reinforced Concrete Light Blue Wall", - "block.anvilcraft.reinforced_concrete_light_gray": "Reinforced Concrete Light Gray", - "block.anvilcraft.reinforced_concrete_light_gray_slab": "Reinforced Concrete Light Gray Slab", - "block.anvilcraft.reinforced_concrete_light_gray_stair": "Reinforced Concrete Light Gray Stair", - "block.anvilcraft.reinforced_concrete_light_gray_wall": "Reinforced Concrete Light Gray Wall", - "block.anvilcraft.reinforced_concrete_lime": "Reinforced Concrete Lime", - "block.anvilcraft.reinforced_concrete_lime_slab": "Reinforced Concrete Lime Slab", - "block.anvilcraft.reinforced_concrete_lime_stair": "Reinforced Concrete Lime Stair", - "block.anvilcraft.reinforced_concrete_lime_wall": "Reinforced Concrete Lime Wall", - "block.anvilcraft.reinforced_concrete_magenta": "Reinforced Concrete Magenta", - "block.anvilcraft.reinforced_concrete_magenta_slab": "Reinforced Concrete Magenta Slab", - "block.anvilcraft.reinforced_concrete_magenta_stair": "Reinforced Concrete Magenta Stair", - "block.anvilcraft.reinforced_concrete_magenta_wall": "Reinforced Concrete Magenta Wall", - "block.anvilcraft.reinforced_concrete_orange": "Reinforced Concrete Orange", - "block.anvilcraft.reinforced_concrete_orange_slab": "Reinforced Concrete Orange Slab", - "block.anvilcraft.reinforced_concrete_orange_stair": "Reinforced Concrete Orange Stair", - "block.anvilcraft.reinforced_concrete_orange_wall": "Reinforced Concrete Orange Wall", - "block.anvilcraft.reinforced_concrete_pink": "Reinforced Concrete Pink", - "block.anvilcraft.reinforced_concrete_pink_slab": "Reinforced Concrete Pink Slab", - "block.anvilcraft.reinforced_concrete_pink_stair": "Reinforced Concrete Pink Stair", - "block.anvilcraft.reinforced_concrete_pink_wall": "Reinforced Concrete Pink Wall", - "block.anvilcraft.reinforced_concrete_purple": "Reinforced Concrete Purple", - "block.anvilcraft.reinforced_concrete_purple_slab": "Reinforced Concrete Purple Slab", - "block.anvilcraft.reinforced_concrete_purple_stair": "Reinforced Concrete Purple Stair", - "block.anvilcraft.reinforced_concrete_purple_wall": "Reinforced Concrete Purple Wall", - "block.anvilcraft.reinforced_concrete_red": "Reinforced Concrete Red", - "block.anvilcraft.reinforced_concrete_red_slab": "Reinforced Concrete Red Slab", - "block.anvilcraft.reinforced_concrete_red_stair": "Reinforced Concrete Red Stair", - "block.anvilcraft.reinforced_concrete_red_wall": "Reinforced Concrete Red Wall", - "block.anvilcraft.reinforced_concrete_white": "Reinforced Concrete White", - "block.anvilcraft.reinforced_concrete_white_slab": "Reinforced Concrete White Slab", - "block.anvilcraft.reinforced_concrete_white_stair": "Reinforced Concrete White Stair", - "block.anvilcraft.reinforced_concrete_white_wall": "Reinforced Concrete White Wall", - "block.anvilcraft.reinforced_concrete_yellow": "Reinforced Concrete Yellow", - "block.anvilcraft.reinforced_concrete_yellow_slab": "Reinforced Concrete Yellow Slab", - "block.anvilcraft.reinforced_concrete_yellow_stair": "Reinforced Concrete Yellow Stair", - "block.anvilcraft.reinforced_concrete_yellow_wall": "Reinforced Concrete Yellow Wall", "block.anvilcraft.remote_transmission_pole": "Remote Transmission Pole", "block.anvilcraft.resentful_amber_block": "Resentful Block of Amber", "block.anvilcraft.resin_block": "Block of Resin", @@ -546,8 +537,16 @@ "block.anvilcraft.white_chocolate_slab": "White Chocolate Slab", "block.anvilcraft.white_chocolate_stairs": "White Chocolate Stairs", "block.anvilcraft.white_hole": "White Hole", + "block.anvilcraft.white_reinforced_concrete": "White Reinforced Concrete", + "block.anvilcraft.white_reinforced_concrete_slab": "White Reinforced Concrete Slab", + "block.anvilcraft.white_reinforced_concrete_stair": "White Reinforced Concrete Stair", + "block.anvilcraft.white_reinforced_concrete_wall": "White Reinforced Concrete Wall", "block.anvilcraft.yellow_cement": "Yellow Cement", "block.anvilcraft.yellow_cement_cauldron": "Yellow Cement Cauldron", + "block.anvilcraft.yellow_reinforced_concrete": "Yellow Reinforced Concrete", + "block.anvilcraft.yellow_reinforced_concrete_slab": "Yellow Reinforced Concrete Slab", + "block.anvilcraft.yellow_reinforced_concrete_stair": "Yellow Reinforced Concrete Stair", + "block.anvilcraft.yellow_reinforced_concrete_wall": "Yellow Reinforced Concrete Wall", "block.anvilcraft.zinc_block": "Block of Zinc", "block.anvilcraft.zinc_pressure_plate": "Zinc Pressure Plate", "command.anvilcraft.multiBlock.multi_block_pos": "Main part pos is ", @@ -713,7 +712,12 @@ "intro.anvilcraft.patchouli.structural_engineering": "By building specific multi-block structures, we can create engineering machines with special functions. $(br2)$(#666666)Technology is not a rigid knowledge with only one solution, but a product that elevates us beyond the ordinary. Common people simply cannot understand our progress.$()", "intro.anvilcraft.patchouli.technology_application": "The production or transformation of new substances through the Anvilcraft technology.", "item.anvilcraft.abnormal_amulet": "Abnormal Amulet", + "item.anvilcraft.acceleration_ring": "Acceleration Ring", + "item.anvilcraft.activator_sliding_rail": "Activator Sliding Rail", + "item.anvilcraft.active_silencer": "Active Silencer", + "item.anvilcraft.advanced_comparator": "Advanced Comparator", "item.anvilcraft.amber": "Amber", + "item.anvilcraft.amber_block": "Amber Block", "item.anvilcraft.amethyst_axe": "Amethyst Axe", "item.anvilcraft.amethyst_hoe": "Amethyst Hoe", "item.anvilcraft.amethyst_pickaxe": "Amethyst Pickaxe", @@ -724,46 +728,144 @@ "item.anvilcraft.anvil_amulet": "Anvil Amulet", "item.anvilcraft.anvil_hammer": "Anvil Hammer", "item.anvilcraft.anvil_railgun": "Anvil Railgun", + "item.anvilcraft.arrow": "Arrow", + "item.anvilcraft.batch_crafter": "Batch Crafter", + "item.anvilcraft.batch_cutter": "Batch Cutter", "item.anvilcraft.beef_mushroom_stew": "Beef Mushroom Stew", + "item.anvilcraft.berry_cake_block": "Berry Cake Block", + "item.anvilcraft.berry_cream_block": "Berry Cream Block", "item.anvilcraft.black_cement_bucket": "Black Cement Bucket", + "item.anvilcraft.black_chocolate_block": "Black Chocolate Block", + "item.anvilcraft.black_chocolate_slab": "Black Chocolate Slab", + "item.anvilcraft.black_chocolate_stairs": "Black Chocolate Stairs", + "item.anvilcraft.black_hole": "Black Hole", + "item.anvilcraft.black_reinforced_concrete": "Black Reinforced Concrete", + "item.anvilcraft.black_reinforced_concrete_slab": "Black Reinforced Concrete Slab", + "item.anvilcraft.black_reinforced_concrete_stair": "Black Reinforced Concrete Stair", + "item.anvilcraft.black_reinforced_concrete_wall": "Black Reinforced Concrete Wall", + "item.anvilcraft.block_comparator": "Block Comparator", + "item.anvilcraft.block_devourer": "Block Devourer", + "item.anvilcraft.block_placer": "Block Placer", "item.anvilcraft.blue_cement_bucket": "Blue Cement Bucket", + "item.anvilcraft.blue_reinforced_concrete": "Blue Reinforced Concrete", + "item.anvilcraft.blue_reinforced_concrete_slab": "Blue Reinforced Concrete Slab", + "item.anvilcraft.blue_reinforced_concrete_stair": "Blue Reinforced Concrete Stair", + "item.anvilcraft.blue_reinforced_concrete_wall": "Blue Reinforced Concrete Wall", + "item.anvilcraft.brass_block": "Brass Block", "item.anvilcraft.brass_ingot": "Brass Ingot", "item.anvilcraft.brass_nugget": "Brass Nugget", + "item.anvilcraft.brass_pressure_plate": "Brass Pressure Plate", + "item.anvilcraft.bronze_block": "Bronze Block", "item.anvilcraft.bronze_ingot": "Bronze Ingot", "item.anvilcraft.bronze_nugget": "Bronze Nugget", + "item.anvilcraft.bronze_pressure_plate": "Bronze Pressure Plate", "item.anvilcraft.brown_cement_bucket": "Brown Cement Bucket", + "item.anvilcraft.brown_reinforced_concrete": "Brown Reinforced Concrete", + "item.anvilcraft.brown_reinforced_concrete_slab": "Brown Reinforced Concrete Slab", + "item.anvilcraft.brown_reinforced_concrete_stair": "Brown Reinforced Concrete Stair", + "item.anvilcraft.brown_reinforced_concrete_wall": "Brown Reinforced Concrete Wall", + "item.anvilcraft.cake_base_block": "Cake Base Block", + "item.anvilcraft.cake_block": "Cake Block", "item.anvilcraft.canned_food": "Canned Food", "item.anvilcraft.capacitor": "Capacitor", "item.anvilcraft.capacitor_empty": "Empty Capacitor", "item.anvilcraft.cat_amulet": "Cat Amulet", + "item.anvilcraft.celestial_forging_anvil": "Celestial Forging Anvil", + "item.anvilcraft.celestial_forging_anvil_amplifier": "Celestial Forging Anvil Amplifier", + "item.anvilcraft.celestial_forging_anvil_fluid_interface": "Celestial Forging Anvil Fluid Interface", + "item.anvilcraft.celestial_forging_anvil_laser_interface": "Celestial Forging Anvil Laser Interface", + "item.anvilcraft.celestial_forging_anvil_logistics_interface": "Celestial Forging Anvil Logistics Interface", + "item.anvilcraft.charge_collector": "Charge Collector", "item.anvilcraft.charged_neutronium_ingot": "Charged Neutronium Ingot", + "item.anvilcraft.charger": "Charger", "item.anvilcraft.chocolate": "Chocolate", "item.anvilcraft.chocolate_black": "Chocolate Black", + "item.anvilcraft.chocolate_block": "Chocolate Block", + "item.anvilcraft.chocolate_cake_block": "Chocolate Cake Block", + "item.anvilcraft.chocolate_cream_block": "Chocolate Cream Block", + "item.anvilcraft.chocolate_slab": "Chocolate Slab", + "item.anvilcraft.chocolate_stairs": "Chocolate Stairs", "item.anvilcraft.chocolate_white": "Chocolate White", + "item.anvilcraft.chromatic_stone": "Chromatic Stone", + "item.anvilcraft.chute": "Chute", + "item.anvilcraft.cinerite": "Cinerite", "item.anvilcraft.circuit_board": "Circuit Board", "item.anvilcraft.cocoa_butter": "Cocoa Butter", "item.anvilcraft.cocoa_liquor": "Cocoa Liquor", "item.anvilcraft.cocoa_powder": "Cocoa Powder", "item.anvilcraft.comrade_amulet": "Comrade Amulet", "item.anvilcraft.comrade_amulet.tooltip": "Signed players:", + "item.anvilcraft.confined_energy_anvilon": "Confined Energy Anvilon", + "item.anvilcraft.confined_mass_anvilon": "Confined Mass Anvilon", + "item.anvilcraft.confined_neutronium_ingot": "Confined Neutronium Ingot", + "item.anvilcraft.confined_space_anvilon": "Confined Space Anvilon", + "item.anvilcraft.confined_time_anvilon": "Confined Time Anvilon", + "item.anvilcraft.confinement_chamber": "Confinement Chamber", + "item.anvilcraft.controllable_sand": "Controllable Sand", "item.anvilcraft.copper_nugget": "Copper Nugget", + "item.anvilcraft.copper_pressure_plate": "Copper Pressure Plate", + "item.anvilcraft.corrupted_beacon": "Corrupted Beacon", "item.anvilcraft.crab_claw": "Crab Claw", + "item.anvilcraft.crab_trap": "Crab Trap", "item.anvilcraft.cream": "Cream", + "item.anvilcraft.cream_block": "Cream Block", "item.anvilcraft.creamy_bread_roll": "Creamy Bread Roll", + "item.anvilcraft.creative_generator": "Creative Generator", + "item.anvilcraft.crushing_table": "Crushing Table", + "item.anvilcraft.cursed_gold_block": "Cursed Gold Block", "item.anvilcraft.cursed_gold_ingot": "Cursed Gold Ingot", "item.anvilcraft.cursed_gold_nugget": "Cursed Gold Nugget", + "item.anvilcraft.cut_ember_metal_block": "Cut Ember Metal Block", + "item.anvilcraft.cut_ember_metal_pillar": "Cut Ember Metal Pillar", + "item.anvilcraft.cut_ember_metal_slab": "Cut Ember Metal Slab", + "item.anvilcraft.cut_ember_metal_stairs": "Cut Ember Metal Stairs", + "item.anvilcraft.cut_flint_block": "Cut Flint Block", + "item.anvilcraft.cut_flint_pillar": "Cut Flint Pillar", + "item.anvilcraft.cut_flint_slab": "Cut Flint Slab", + "item.anvilcraft.cut_flint_stairs": "Cut Flint Stairs", + "item.anvilcraft.cut_frost_metal_block": "Cut Frost Metal Block", + "item.anvilcraft.cut_frost_metal_pillar": "Cut Frost Metal Pillar", + "item.anvilcraft.cut_frost_metal_slab": "Cut Frost Metal Slab", + "item.anvilcraft.cut_frost_metal_stairs": "Cut Frost Metal Stairs", + "item.anvilcraft.cut_heavy_iron_block": "Cut Heavy Iron Block", + "item.anvilcraft.cut_heavy_iron_slab": "Cut Heavy Iron Slab", + "item.anvilcraft.cut_heavy_iron_stairs": "Cut Heavy Iron Stairs", + "item.anvilcraft.cut_royal_steel_block": "Cut Royal Steel Block", + "item.anvilcraft.cut_royal_steel_pillar": "Cut Royal Steel Pillar", + "item.anvilcraft.cut_royal_steel_slab": "Cut Royal Steel Slab", + "item.anvilcraft.cut_royal_steel_stairs": "Cut Royal Steel Stairs", "item.anvilcraft.cyan_cement_bucket": "Cyan Cement Bucket", + "item.anvilcraft.cyan_reinforced_concrete": "Cyan Reinforced Concrete", + "item.anvilcraft.cyan_reinforced_concrete_slab": "Cyan Reinforced Concrete Slab", + "item.anvilcraft.cyan_reinforced_concrete_stair": "Cyan Reinforced Concrete Stair", + "item.anvilcraft.cyan_reinforced_concrete_wall": "Cyan Reinforced Concrete Wall", + "item.anvilcraft.deepslate_lead_ore": "Deepslate Lead Ore", + "item.anvilcraft.deepslate_silver_ore": "Deepslate Silver Ore", + "item.anvilcraft.deepslate_tin_ore": "Deepslate Tin Ore", + "item.anvilcraft.deepslate_titanium_ore": "Deepslate Titanium Ore", + "item.anvilcraft.deepslate_tungsten_ore": "Deepslate Tungsten Ore", + "item.anvilcraft.deepslate_uranium_ore": "Deepslate Uranium Ore", + "item.anvilcraft.deepslate_zinc_ore": "Deepslate Zinc Ore", + "item.anvilcraft.deflection_ring": "Deflection Ring", "item.anvilcraft.deformation_smithing_template": "Deformation Smithing Template", + "item.anvilcraft.detector_sliding_rail": "Detector Sliding Rail", + "item.anvilcraft.discharger": "Discharger", "item.anvilcraft.disk": "Disk", "item.anvilcraft.disk.stored_from": "Stored from: %s", "item.anvilcraft.dog_amulet": "Dog Amulet", "item.anvilcraft.dough": "Dough", "item.anvilcraft.dragon_rod": "Dragon Rod", "item.anvilcraft.earth_core_shard": "Earth Core Shard", + "item.anvilcraft.earth_core_shard_block": "Earth Core Shard Block", + "item.anvilcraft.earth_core_shard_ore": "Earth Core Shard Ore", "item.anvilcraft.eight_to_one_smithing_template": "Eight to One Smithing Template", + "item.anvilcraft.ember_anvil": "Ember Anvil", "item.anvilcraft.ember_anvil_hammer": "Ember Anvil Hammer", "item.anvilcraft.ember_dragon_rod": "Ember Dragon Rod", + "item.anvilcraft.ember_glass": "Ember Glass", + "item.anvilcraft.ember_grindstone": "Ember Grindstone", "item.anvilcraft.ember_metal_axe": "Ember Metal Axe", + "item.anvilcraft.ember_metal_block": "Ember Metal Block", "item.anvilcraft.ember_metal_heavy_halberd": "Ember Metal Heavy Halberd", "item.anvilcraft.ember_metal_hoe": "Ember Metal Hoe", "item.anvilcraft.ember_metal_ingot": "Ember Metal Ingot", @@ -773,15 +875,27 @@ "item.anvilcraft.ember_metal_shovel": "Ember Metal Shovel", "item.anvilcraft.ember_metal_sword": "Ember Metal Sword", "item.anvilcraft.ember_metal_upgrade_smithing_template": "Smithing Template", + "item.anvilcraft.ember_smithing_table": "Ember Smithing Table", "item.anvilcraft.emerald_amulet": "Emerald Amulet", + "item.anvilcraft.end_dust": "End Dust", "item.anvilcraft.energy_weapon_platform": "Energy Weapon Platform", "item.anvilcraft.exp_bucket": "Exp Bucket", "item.anvilcraft.exp_gem": "Exp Gem", + "item.anvilcraft.exp_gem_block": "Exp Gem Block", + "item.anvilcraft.exposed_copper_pressure_plate": "Exposed Copper Pressure Plate", "item.anvilcraft.feather_amulet": "Feather Amulet", + "item.anvilcraft.ferrite_core_magnet_block": "Ferrite Core Magnet Block", "item.anvilcraft.filter": "Filter", + "item.anvilcraft.fish_tank": "Fish Tank", + "item.anvilcraft.flint_block": "Flint Block", "item.anvilcraft.flour": "Flour", + "item.anvilcraft.fluid_tank": "Fluid Tank", "item.anvilcraft.four_to_one_smithing_template": "Four to One Smithing Template", + "item.anvilcraft.frost_anvil": "Frost Anvil", + "item.anvilcraft.frost_glass": "Frost Glass", + "item.anvilcraft.frost_grindstone": "Frost Grindstone", "item.anvilcraft.frost_metal_axe": "Frost Metal Axe", + "item.anvilcraft.frost_metal_block": "Frost Metal Block", "item.anvilcraft.frost_metal_heavy_halberd": "Frost Metal Heavy Halberd", "item.anvilcraft.frost_metal_hoe": "Frost Metal Hoe", "item.anvilcraft.frost_metal_ingot": "Frost Metal Ingot", @@ -791,66 +905,185 @@ "item.anvilcraft.frost_metal_shovel": "Frost Metal Shovel", "item.anvilcraft.frost_metal_sword": "Frost Metal Sword", "item.anvilcraft.frost_metal_upgrade_smithing_template": "Smithing Template", + "item.anvilcraft.frost_smithing_table": "Frost Smithing Table", "item.anvilcraft.gem_amulet": "Gem Amulet", "item.anvilcraft.geode": "Geode", "item.anvilcraft.geode.find": "Suspected amethyst geode, located %s", + "item.anvilcraft.giant_anvil": "Giant Anvil", + "item.anvilcraft.glowing_netherite_block": "Glowing Netherite Block", + "item.anvilcraft.glowing_tungsten_block": "Glowing Tungsten Block", "item.anvilcraft.gray_cement_bucket": "Gray Cement Bucket", + "item.anvilcraft.gray_reinforced_concrete": "Gray Reinforced Concrete", + "item.anvilcraft.gray_reinforced_concrete_slab": "Gray Reinforced Concrete Slab", + "item.anvilcraft.gray_reinforced_concrete_stair": "Gray Reinforced Concrete Stair", + "item.anvilcraft.gray_reinforced_concrete_wall": "Gray Reinforced Concrete Wall", "item.anvilcraft.green_cement_bucket": "Green Cement Bucket", + "item.anvilcraft.green_reinforced_concrete": "Green Reinforced Concrete", + "item.anvilcraft.green_reinforced_concrete_slab": "Green Reinforced Concrete Slab", + "item.anvilcraft.green_reinforced_concrete_stair": "Green Reinforced Concrete Stair", + "item.anvilcraft.green_reinforced_concrete_wall": "Green Reinforced Concrete Wall", "item.anvilcraft.guide_book": "AnvilCraft Guide Book", + "item.anvilcraft.gunpowder_block": "Gunpowder Block", "item.anvilcraft.hardend_resin": "Hardend Resin", + "item.anvilcraft.heat_collector": "Heat Collector", + "item.anvilcraft.heated_netherite_block": "Heated Netherite Block", + "item.anvilcraft.heated_tungsten_block": "Heated Tungsten Block", + "item.anvilcraft.heater": "Heater", "item.anvilcraft.heavy_halberd_core": "Heavy Halberd Core", + "item.anvilcraft.heavy_iron_beam": "Heavy Iron Beam", + "item.anvilcraft.heavy_iron_block": "Heavy Iron Block", + "item.anvilcraft.heavy_iron_column": "Heavy Iron Column", + "item.anvilcraft.heavy_iron_door": "Heavy Iron Door", + "item.anvilcraft.heavy_iron_plate": "Heavy Iron Plate", + "item.anvilcraft.heavy_iron_trapdoor": "Heavy Iron Trapdoor", + "item.anvilcraft.heavy_iron_wall": "Heavy Iron Wall", + "item.anvilcraft.heliostats": "Heliostats", "item.anvilcraft.heliostats.pos_set": "Will irradiate %s", + "item.anvilcraft.hollow_magnet_block": "Hollow Magnet Block", + "item.anvilcraft.impact_pile": "Impact Pile", + "item.anvilcraft.incandescent_netherite_block": "Incandescent Netherite Block", + "item.anvilcraft.incandescent_tungsten_block": "Incandescent Tungsten Block", + "item.anvilcraft.induction_light": "Induction Light", "item.anvilcraft.inherent_enchantment.tooltip": "Inherent enchantments:", "item.anvilcraft.ionocraft": "Ionocraft", "item.anvilcraft.ionocraft_backpack": "Ionocraft Backpack", "item.anvilcraft.ionocraft_backpack.flight_time": "Flight Time: %ds", "item.anvilcraft.ionocraft_backpack.flight_time_energy": "Remaining Energy: %sMJ, Flight Time: %ss", + "item.anvilcraft.item_collector": "Item Collector", + "item.anvilcraft.item_detector": "Item Detector", + "item.anvilcraft.jewelcrafting_table": "Jewelcrafting Table", + "item.anvilcraft.large_cake": "Large Cake", + "item.anvilcraft.large_fluid_tank": "Large Fluid Tank", + "item.anvilcraft.laser_receiver": "Laser Receiver", + "item.anvilcraft.lead_block": "Lead Block", "item.anvilcraft.lead_ingot": "Lead Ingot", "item.anvilcraft.lead_nugget": "Lead Nugget", + "item.anvilcraft.lead_pressure_plate": "Lead Pressure Plate", "item.anvilcraft.levitation_powder": "Levitation Powder", + "item.anvilcraft.levitation_powder_block": "Levitation Powder Block", "item.anvilcraft.light_blue_cement_bucket": "Light Blue Cement Bucket", + "item.anvilcraft.light_blue_reinforced_concrete": "Light Blue Reinforced Concrete", + "item.anvilcraft.light_blue_reinforced_concrete_slab": "Light Blue Reinforced Concrete Slab", + "item.anvilcraft.light_blue_reinforced_concrete_stair": "Light Blue Reinforced Concrete Stair", + "item.anvilcraft.light_blue_reinforced_concrete_wall": "Light Blue Reinforced Concrete Wall", "item.anvilcraft.light_gray_cement_bucket": "Light Gray Cement Bucket", + "item.anvilcraft.light_gray_reinforced_concrete": "Light Gray Reinforced Concrete", + "item.anvilcraft.light_gray_reinforced_concrete_slab": "Light Gray Reinforced Concrete Slab", + "item.anvilcraft.light_gray_reinforced_concrete_stair": "Light Gray Reinforced Concrete Stair", + "item.anvilcraft.light_gray_reinforced_concrete_wall": "Light Gray Reinforced Concrete Wall", "item.anvilcraft.lime_cement_bucket": "Lime Cement Bucket", "item.anvilcraft.lime_powder": "Lime Powder", + "item.anvilcraft.lime_reinforced_concrete": "Lime Reinforced Concrete", + "item.anvilcraft.lime_reinforced_concrete_slab": "Lime Reinforced Concrete Slab", + "item.anvilcraft.lime_reinforced_concrete_stair": "Lime Reinforced Concrete Stair", + "item.anvilcraft.lime_reinforced_concrete_wall": "Lime Reinforced Concrete Wall", + "item.anvilcraft.load_monitor": "Load Monitor", "item.anvilcraft.magenta_cement_bucket": "Magenta Cement Bucket", + "item.anvilcraft.magenta_reinforced_concrete": "Magenta Reinforced Concrete", + "item.anvilcraft.magenta_reinforced_concrete_slab": "Magenta Reinforced Concrete Slab", + "item.anvilcraft.magenta_reinforced_concrete_stair": "Magenta Reinforced Concrete Stair", + "item.anvilcraft.magenta_reinforced_concrete_wall": "Magenta Reinforced Concrete Wall", "item.anvilcraft.magnet": "Magnet", + "item.anvilcraft.magnet_block": "Magnet Block", "item.anvilcraft.magnet_ingot": "Magnet Ingot", + "item.anvilcraft.magnetic_chute": "Magnetic Chute", + "item.anvilcraft.magnetoelectric_core": "Magnetoelectric Core", "item.anvilcraft.melt_gem_bucket": "Melt Gem Bucket", + "item.anvilcraft.menger_sponge": "Menger Sponge", + "item.anvilcraft.mineral_fountain": "Mineral Fountain", + "item.anvilcraft.mob_amber_block": "Mob Amber Block", "item.anvilcraft.multiphase_matter": "Multiphase Matter", + "item.anvilcraft.multiphase_matter_block": "Multiphase Matter Block", "item.anvilcraft.multiphase_transcendium": "Multiphase Transcendium", "item.anvilcraft.multitool": "Multitool", "item.anvilcraft.nature_amulet": "Nature Amulet", "item.anvilcraft.negative_matter": "Negative Matter", + "item.anvilcraft.negative_matter_block": "Negative Matter Block", "item.anvilcraft.negative_matter_nugget": "Negative Matter Nugget", + "item.anvilcraft.neoforge": "Neoforge", + "item.anvilcraft.nesting_shulker_box": "Nesting Shulker Box", + "item.anvilcraft.nether_dust": "Nether Dust", "item.anvilcraft.netherite_crystal_nucleus": "Netherite Crystal Nucleus", + "item.anvilcraft.neutron_irradiator": "Neutron Irradiator", "item.anvilcraft.neutronium_ingot": "Neutronium Ingot", "item.anvilcraft.oil_bucket": "Oil Bucket", "item.anvilcraft.orange_cement_bucket": "Orange Cement Bucket", + "item.anvilcraft.orange_reinforced_concrete": "Orange Reinforced Concrete", + "item.anvilcraft.orange_reinforced_concrete_slab": "Orange Reinforced Concrete Slab", + "item.anvilcraft.orange_reinforced_concrete_stair": "Orange Reinforced Concrete Stair", + "item.anvilcraft.orange_reinforced_concrete_wall": "Orange Reinforced Concrete Wall", + "item.anvilcraft.over_nesting_shulker_box": "Over Nesting Shulker Box", + "item.anvilcraft.overheated_ember_metal_block": "Overheated Ember Metal Block", + "item.anvilcraft.overseer": "Overseer", + "item.anvilcraft.oxidized_copper_pressure_plate": "Oxidized Copper Pressure Plate", "item.anvilcraft.permutation_smithing_template": "Permutation Smithing Template", + "item.anvilcraft.piezoelectric_crystal": "Piezoelectric Crystal", "item.anvilcraft.pill": "Pill", "item.anvilcraft.pill.tooltip": "Pills made together with potion to achieve corresponding effects, can be taken quickly", "item.anvilcraft.pill_box": "Pill Box", "item.anvilcraft.pink_cement_bucket": "Pink Cement Bucket", + "item.anvilcraft.pink_reinforced_concrete": "Pink Reinforced Concrete", + "item.anvilcraft.pink_reinforced_concrete_slab": "Pink Reinforced Concrete Slab", + "item.anvilcraft.pink_reinforced_concrete_stair": "Pink Reinforced Concrete Stair", + "item.anvilcraft.pink_reinforced_concrete_wall": "Pink Reinforced Concrete Wall", + "item.anvilcraft.plutonium_block": "Plutonium Block", "item.anvilcraft.plutonium_ingot": "Plutonium Ingot", "item.anvilcraft.plutonium_nugget": "Plutonium Nugget", + "item.anvilcraft.plutonium_pressure_plate": "Plutonium Pressure Plate", + "item.anvilcraft.polished_flint_block": "Polished Flint Block", + "item.anvilcraft.polished_heavy_iron_block": "Polished Heavy Iron Block", + "item.anvilcraft.polished_heavy_iron_slab": "Polished Heavy Iron Slab", + "item.anvilcraft.polished_heavy_iron_stairs": "Polished Heavy Iron Stairs", + "item.anvilcraft.power_converter_big": "Power Converter Big", + "item.anvilcraft.power_converter_middle": "Power Converter Middle", + "item.anvilcraft.power_converter_small": "Power Converter Small", + "item.anvilcraft.powered_sliding_rail": "Powered Sliding Rail", "item.anvilcraft.prismarine_blade": "Prismarine Blade", "item.anvilcraft.prismarine_cluster": "Prismarine Cluster", "item.anvilcraft.processor": "Processor", + "item.anvilcraft.propel_piston": "Propel Piston", + "item.anvilcraft.pulse_generator": "Pulse Generator", "item.anvilcraft.purple_cement_bucket": "Purple Cement Bucket", + "item.anvilcraft.purple_reinforced_concrete": "Purple Reinforced Concrete", + "item.anvilcraft.purple_reinforced_concrete_slab": "Purple Reinforced Concrete Slab", + "item.anvilcraft.purple_reinforced_concrete_stair": "Purple Reinforced Concrete Stair", + "item.anvilcraft.purple_reinforced_concrete_wall": "Purple Reinforced Concrete Wall", + "item.anvilcraft.quartz_sand": "Quartz Sand", "item.anvilcraft.raw_lead": "Raw Lead", + "item.anvilcraft.raw_lead_block": "Raw Lead Block", "item.anvilcraft.raw_silver": "Raw Silver", + "item.anvilcraft.raw_silver_block": "Raw Silver Block", "item.anvilcraft.raw_tin": "Raw Tin", + "item.anvilcraft.raw_tin_block": "Raw Tin Block", "item.anvilcraft.raw_titanium": "Raw Titanium", + "item.anvilcraft.raw_titanium_block": "Raw Titanium Block", "item.anvilcraft.raw_tungsten": "Raw Tungsten", + "item.anvilcraft.raw_tungsten_block": "Raw Tungsten Block", "item.anvilcraft.raw_uranium": "Raw Uranium", + "item.anvilcraft.raw_uranium_block": "Raw Uranium Block", "item.anvilcraft.raw_zinc": "Raw Zinc", + "item.anvilcraft.raw_zinc_block": "Raw Zinc Block", "item.anvilcraft.recovery_pearl": "Recovery Pearl", "item.anvilcraft.red_cement_bucket": "Red Cement Bucket", + "item.anvilcraft.red_reinforced_concrete": "Red Reinforced Concrete", + "item.anvilcraft.red_reinforced_concrete_slab": "Red Reinforced Concrete Slab", + "item.anvilcraft.red_reinforced_concrete_stair": "Red Reinforced Concrete Stair", + "item.anvilcraft.red_reinforced_concrete_wall": "Red Reinforced Concrete Wall", + "item.anvilcraft.redhot_netherite_block": "Redhot Netherite Block", + "item.anvilcraft.redhot_tungsten_block": "Redhot Tungsten Block", + "item.anvilcraft.remote_transmission_pole": "Remote Transmission Pole", + "item.anvilcraft.resentful_amber_block": "Resentful Amber Block", "item.anvilcraft.resin": "Resin", + "item.anvilcraft.resin_block": "Resin Block", "item.anvilcraft.resonator_core": "Resonator Core", + "item.anvilcraft.rotten_flesh_block": "Rotten Flesh Block", + "item.anvilcraft.royal_anvil": "Royal Anvil", "item.anvilcraft.royal_anvil_hammer": "Royal Anvil Hammer", "item.anvilcraft.royal_dragon_rod": "Royal Dragon Rod", + "item.anvilcraft.royal_grindstone": "Royal Grindstone", + "item.anvilcraft.royal_smithing_table": "Royal Smithing Table", "item.anvilcraft.royal_steel_axe": "Royal Steel Axe", + "item.anvilcraft.royal_steel_block": "Royal Steel Block", "item.anvilcraft.royal_steel_hoe": "Royal Steel Hoe", "item.anvilcraft.royal_steel_ingot": "Royal Steel Ingot", "item.anvilcraft.royal_steel_nugget": "Royal Steel Nugget", @@ -860,51 +1093,101 @@ "item.anvilcraft.royal_steel_upgrade_smithing_template": "Smithing Template", "item.anvilcraft.ruby": "Ruby", "item.anvilcraft.ruby_amulet": "Ruby Amulet", + "item.anvilcraft.ruby_block": "Ruby Block", + "item.anvilcraft.ruby_laser": "Ruby Laser", + "item.anvilcraft.ruby_prism": "Ruby Prism", "item.anvilcraft.sapphire": "Sapphire", "item.anvilcraft.sapphire_amulet": "Sapphire Amulet", + "item.anvilcraft.sapphire_block": "Sapphire Block", "item.anvilcraft.sea_heart_shell": "Sea Heart Shell", "item.anvilcraft.sea_heart_shell_shard": "Sea Heart Shell Shard", "item.anvilcraft.seeds_pack": "Seeds Pack", + "item.anvilcraft.shulker_container": "Shulker Container", "item.anvilcraft.silence_amulet": "Silence Amulet", + "item.anvilcraft.silver_block": "Silver Block", "item.anvilcraft.silver_ingot": "Silver Ingot", "item.anvilcraft.silver_nugget": "Silver Nugget", + "item.anvilcraft.silver_pressure_plate": "Silver Pressure Plate", + "item.anvilcraft.singularity_crystal": "Singularity Crystal", + "item.anvilcraft.sliding_rail": "Sliding Rail", + "item.anvilcraft.sliding_rail_stop": "Sliding Rail Stop", + "item.anvilcraft.smooth_royal_steel_block": "Smooth Royal Steel Block", + "item.anvilcraft.space_overcompressor": "Space Overcompressor", + "item.anvilcraft.spectral_anvil": "Spectral Anvil", "item.anvilcraft.spectral_slingshot": "Spectral Slingshot", "item.anvilcraft.spectral_slingshot.unload_return": "Returned when Unloaded", "item.anvilcraft.spectral_slingshot.unload_vanish": "Vanishes when Unloaded", "item.anvilcraft.spectral_weapon_launcher": "Spectral Weapon Launcher", "item.anvilcraft.sponge_gemmule": "Sponge Gemmule", "item.anvilcraft.stable_neutronium_ingot": "Stable Neutronium Ingot", + "item.anvilcraft.stamping_platform": "Stamping Platform", "item.anvilcraft.structure_tool": "Structure Tool", + "item.anvilcraft.sturdy_deepslate": "Sturdy Deepslate", + "item.anvilcraft.sugar_block": "Sugar Block", "item.anvilcraft.supercapacitor": "Supercapacitor", "item.anvilcraft.supercapacitor_empty": "Empty Supercapacitor", + "item.anvilcraft.supercritical_nesting_shulker_box": "Supercritical Nesting Shulker Box", + "item.anvilcraft.tempering_glass": "Tempering Glass", + "item.anvilcraft.tesla_tower": "Tesla Tower", + "item.anvilcraft.tin_block": "Tin Block", "item.anvilcraft.tin_can": "Tin Can", "item.anvilcraft.tin_ingot": "Tin Ingot", "item.anvilcraft.tin_nugget": "Tin Nugget", + "item.anvilcraft.tin_pressure_plate": "Tin Pressure Plate", + "item.anvilcraft.titanium_block": "Titanium Block", "item.anvilcraft.titanium_ingot": "Titanium Ingot", "item.anvilcraft.titanium_nugget": "Titanium Nugget", + "item.anvilcraft.titanium_pressure_plate": "Titanium Pressure Plate", "item.anvilcraft.topaz": "Topaz", "item.anvilcraft.topaz_amulet": "Topaz Amulet", + "item.anvilcraft.topaz_block": "Topaz Block", "item.anvilcraft.totem_of_rage": "Totem of Rage", "item.anvilcraft.totem_of_recovery": "Totem of Recovery", + "item.anvilcraft.transcendence_anvil": "Transcendence Anvil", "item.anvilcraft.transcendence_anvil_hammer": "Transcendence Anvil Hammer", "item.anvilcraft.transcendence_dragon_rod": "Transcendence Dragon Rod", "item.anvilcraft.transcendence_heavy_halberd": "Transcendence Heavy Halberd", "item.anvilcraft.transcendence_resonator": "Transcendence Resonator", + "item.anvilcraft.transcendium_block": "Transcendium Block", "item.anvilcraft.transcendium_ingot": "Transcendium Ingot", "item.anvilcraft.transcendium_nugget": "Transcendium Nugget", "item.anvilcraft.transcendium_upgrade_smithing_template": "Smithing Template", + "item.anvilcraft.transmission_pole": "Transmission Pole", + "item.anvilcraft.transparent_crafting_table": "Transparent Crafting Table", + "item.anvilcraft.tungsten_block": "Tungsten Block", "item.anvilcraft.tungsten_ingot": "Tungsten Ingot", "item.anvilcraft.tungsten_nugget": "Tungsten Nugget", + "item.anvilcraft.tungsten_pressure_plate": "Tungsten Pressure Plate", "item.anvilcraft.two_to_one_smithing_template": "Two to One Smithing Template", + "item.anvilcraft.uranium_block": "Uranium Block", "item.anvilcraft.uranium_ingot": "Uranium Ingot", "item.anvilcraft.uranium_nugget": "Uranium Nugget", + "item.anvilcraft.uranium_pressure_plate": "Uranium Pressure Plate", "item.anvilcraft.utusan": "Utusan", + "item.anvilcraft.void_energy_collector": "Void Energy Collector", "item.anvilcraft.void_matter": "Void Matter", + "item.anvilcraft.void_matter_block": "Void Matter Block", + "item.anvilcraft.void_stone": "Void Stone", + "item.anvilcraft.weathered_copper_pressure_plate": "Weathered Copper Pressure Plate", "item.anvilcraft.white_cement_bucket": "White Cement Bucket", + "item.anvilcraft.white_chocolate_block": "White Chocolate Block", + "item.anvilcraft.white_chocolate_slab": "White Chocolate Slab", + "item.anvilcraft.white_chocolate_stairs": "White Chocolate Stairs", + "item.anvilcraft.white_hole": "White Hole", + "item.anvilcraft.white_reinforced_concrete": "White Reinforced Concrete", + "item.anvilcraft.white_reinforced_concrete_slab": "White Reinforced Concrete Slab", + "item.anvilcraft.white_reinforced_concrete_stair": "White Reinforced Concrete Stair", + "item.anvilcraft.white_reinforced_concrete_wall": "White Reinforced Concrete Wall", "item.anvilcraft.wood_fiber": "Wood Fiber", "item.anvilcraft.yellow_cement_bucket": "Yellow Cement Bucket", + "item.anvilcraft.yellow_reinforced_concrete": "Yellow Reinforced Concrete", + "item.anvilcraft.yellow_reinforced_concrete_slab": "Yellow Reinforced Concrete Slab", + "item.anvilcraft.yellow_reinforced_concrete_stair": "Yellow Reinforced Concrete Stair", + "item.anvilcraft.yellow_reinforced_concrete_wall": "Yellow Reinforced Concrete Wall", + "item.anvilcraft.zinc_block": "Zinc Block", "item.anvilcraft.zinc_ingot": "Zinc Ingot", "item.anvilcraft.zinc_nugget": "Zinc Nugget", + "item.anvilcraft.zinc_pressure_plate": "Zinc Pressure Plate", "itemGroup.anvilcraft.building_blocks": "AnvilCraft: Building Blocks", "itemGroup.anvilcraft.functional_blocks": "AnvilCraft: Functional Blocks", "itemGroup.anvilcraft.ingredients": "AnvilCraft: Ingredients", @@ -1206,10 +1489,7 @@ "tooltip.anvilcraft.item.activator_sliding_rail": "Activates blocks sliding over it", "tooltip.anvilcraft.item.active_silencer": "Eliminate selected nearby sounds", "tooltip.anvilcraft.item.advanced_comparator": "Supports Hysteresis and Window comparison modes", - "tooltip.anvilcraft.item.amulet_box.desc": "Stores multiple active amulets or totems", - "tooltip.anvilcraft.item.amulet_box.fullness": "Fullness: %1$d / %2$d", - "tooltip.anvilcraft.item.amulet_box.line_1": "Right click to store the Totems of Undying on your inventory, and shift-right-click to retrieve the totems;", - "tooltip.anvilcraft.item.amulet_box.line_2": "When holding, consume the totems in the box when needed, and after consuming the totem, you may receive a secret gift.", + "tooltip.anvilcraft.item.amulet_box": "Stores multiple active amulets or totems\nRight-click to store Totems in your inventory, and shift-right-click to retrieve the totems;\nWhen holding, consume the totems in the box when needed, and after consuming the totem, you may receive a secret gift.", "tooltip.anvilcraft.item.anvil_amulet": "Grants immunity to anvil damage", "tooltip.anvilcraft.item.anvil_hammer": "It's a hammer, an anvil, a wrench, goggles, and a mace", "tooltip.anvilcraft.item.batch_crafter": "Received a redstone signal and crafted all internal items at once, with a power consumption of 4 kW", @@ -1238,10 +1518,10 @@ "tooltip.anvilcraft.item.cut_ember_metal_pillar": "Wither proof", "tooltip.anvilcraft.item.cut_ember_metal_slab": "Wither proof", "tooltip.anvilcraft.item.cut_ember_metal_stairs": "Wither proof", - "tooltip.anvilcraft.item.cut_frost_metal_block": "Wither proof", - "tooltip.anvilcraft.item.cut_frost_metal_pillar": "Wither proof", - "tooltip.anvilcraft.item.cut_frost_metal_slab": "Wither proof", - "tooltip.anvilcraft.item.cut_frost_metal_stairs": "Wither proof", + "tooltip.anvilcraft.item.cut_frost_metal_block": "Explosion proof", + "tooltip.anvilcraft.item.cut_frost_metal_pillar": "Explosion proof", + "tooltip.anvilcraft.item.cut_frost_metal_slab": "Explosion proof", + "tooltip.anvilcraft.item.cut_frost_metal_stairs": "Explosion proof", "tooltip.anvilcraft.item.cut_heavy_iron_block": "Explosion proof", "tooltip.anvilcraft.item.cut_heavy_iron_slab": "Explosion proof", "tooltip.anvilcraft.item.cut_heavy_iron_stairs": "Explosion proof", @@ -1269,10 +1549,10 @@ "tooltip.anvilcraft.item.ferrite_core_magnet_block": "Attracting the anvil below, when pushed and pulled by the piston, causes adjacent copper blocks to generate charges", "tooltip.anvilcraft.item.filter": "Matches items based on config or filters. Usable in any filter slot", "tooltip.anvilcraft.item.fish_tank": "It is sturdier than it looks and can be used as a substitute for the alchemy pot to perform related anvil synthesis.\nWearing it on your head provides a temporary underwater breathing effect.\nRight-click the top with an item in hand to place the item inside.\nRight-click the lower part of the fish tank with a tropical fish bucket in hand to release the tropical fish.", - "tooltip.anvilcraft.item.frost_anvil": "Wither proof", - "tooltip.anvilcraft.item.frost_grindstone": "Wither proof", - "tooltip.anvilcraft.item.frost_metal_block": "Wither proof", - "tooltip.anvilcraft.item.frost_smithing_table": "Wither proof", + "tooltip.anvilcraft.item.frost_anvil": "Explosion proof", + "tooltip.anvilcraft.item.frost_grindstone": "Explosion proof", + "tooltip.anvilcraft.item.frost_metal_block": "Explosion proof", + "tooltip.anvilcraft.item.frost_smithing_table": "Explosion proof", "tooltip.anvilcraft.item.gem_amulet": "Combines effects of all four Gem Amulets", "tooltip.anvilcraft.item.geode": "Find the surrounding Amethyst Geode when using it", "tooltip.anvilcraft.item.heat_collector": "Generates power from heat", @@ -1307,6 +1587,7 @@ "tooltip.anvilcraft.item.overseer": "Chunk loader on 3x3 Royal Steel base. Higher base layers increase chunk load range (max 3 layers, 5x5 range)", "tooltip.anvilcraft.item.oxidized_copper_pressure_plate": "Redstone signal increases with pressing time, also a copper plate", "tooltip.anvilcraft.item.piezoelectric_crystal": "Charge generated by an anvil fall on it", + "tooltip.anvilcraft.item.pill": "Pills made together with potion to achieve corresponding effects, can be taken quickly", "tooltip.anvilcraft.item.plutonium_pressure_plate": "Output a redstone signal based on the player in hand item durability, also a plutonium plate", "tooltip.anvilcraft.item.polished_heavy_iron_block": "Explosion proof", "tooltip.anvilcraft.item.polished_heavy_iron_slab": "Explosion proof", @@ -1380,6 +1661,12 @@ "tooltip.anvilcraft.propel_piston.remaining_energy": " Remaining Energy: %s", "tooltip.anvilcraft.propel_piston.remaining_push": " Remaining Push: %s block-time", "tooltip.anvilcraft.propel_piston.state": "Propel Piston State: ", + "tooltip.anvilcraft.property.box_contents": "Fullness: %1$d / %2$d", + "tooltip.anvilcraft.property.devour_range": "Current Devour Range: %s", + "tooltip.anvilcraft.property.devour_range.range_3": "3x3", + "tooltip.anvilcraft.property.devour_range.range_5": "5x5", + "tooltip.anvilcraft.property.devour_range.range_7": "7x7", + "tooltip.anvilcraft.property.devour_range.range_9": "9x9", "tooltip.anvilcraft.property.eternal": "Eternal: unbreakable, immune fire, explode, cactus, even the time and the void", "tooltip.anvilcraft.property.ferocious": "Ferocious: enhance attack damage and mining efficiency based on the level of all enchantments", "tooltip.anvilcraft.property.fire_reforging": "Reforging: mending in fire or lava", diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete.json new file mode 100644 index 0000000000..124171d340 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/black_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..81d59a9ffe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/black_reinforced_concrete", + "side": "anvilcraft:block/black_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..26d74ae348 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/black_reinforced_concrete", + "side": "anvilcraft:block/black_reinforced_concrete", + "top": "anvilcraft:block/black_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..d659a4e353 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/black_reinforced_concrete", + "side": "anvilcraft:block/black_reinforced_concrete", + "top": "anvilcraft:block/black_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..62ee1b2b09 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/black_reinforced_concrete", + "side": "anvilcraft:block/black_reinforced_concrete", + "top": "anvilcraft:block/black_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..55892835cd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/black_reinforced_concrete", + "side": "anvilcraft:block/black_reinforced_concrete", + "top": "anvilcraft:block/black_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..d0f82f239f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/black_reinforced_concrete", + "side": "anvilcraft:block/black_reinforced_concrete", + "top": "anvilcraft:block/black_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_top.json new file mode 100644 index 0000000000..a9324b44b8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/black_reinforced_concrete", + "side": "anvilcraft:block/black_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..c76c4c1904 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/black_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..ab1e0ffbcf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/black_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..9d7ad6df75 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/black_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..1d8c80e91a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/black_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/black_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete.json new file mode 100644 index 0000000000..2027062aea --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..e13c2798c5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/blue_reinforced_concrete", + "side": "anvilcraft:block/blue_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..eae95bc6d5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/blue_reinforced_concrete", + "side": "anvilcraft:block/blue_reinforced_concrete", + "top": "anvilcraft:block/blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..198451061d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/blue_reinforced_concrete", + "side": "anvilcraft:block/blue_reinforced_concrete", + "top": "anvilcraft:block/blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..655049918d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/blue_reinforced_concrete", + "side": "anvilcraft:block/blue_reinforced_concrete", + "top": "anvilcraft:block/blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..e9fc801bce --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/blue_reinforced_concrete", + "side": "anvilcraft:block/blue_reinforced_concrete", + "top": "anvilcraft:block/blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..7eb3234c4a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/blue_reinforced_concrete", + "side": "anvilcraft:block/blue_reinforced_concrete", + "top": "anvilcraft:block/blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_top.json new file mode 100644 index 0000000000..b2d89c6e38 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/blue_reinforced_concrete", + "side": "anvilcraft:block/blue_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..0c01eff876 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..f7b71094e0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..f9cbeeec32 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..6a21aa9838 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/blue_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete.json new file mode 100644 index 0000000000..b377d29222 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/brown_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..8ce2d596cf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/brown_reinforced_concrete", + "side": "anvilcraft:block/brown_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..c0a63fbb71 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/brown_reinforced_concrete", + "side": "anvilcraft:block/brown_reinforced_concrete", + "top": "anvilcraft:block/brown_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..d56b57476e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/brown_reinforced_concrete", + "side": "anvilcraft:block/brown_reinforced_concrete", + "top": "anvilcraft:block/brown_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..c2bf62438a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/brown_reinforced_concrete", + "side": "anvilcraft:block/brown_reinforced_concrete", + "top": "anvilcraft:block/brown_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..1f22e095d1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/brown_reinforced_concrete", + "side": "anvilcraft:block/brown_reinforced_concrete", + "top": "anvilcraft:block/brown_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..d9142dae1d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/brown_reinforced_concrete", + "side": "anvilcraft:block/brown_reinforced_concrete", + "top": "anvilcraft:block/brown_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_top.json new file mode 100644 index 0000000000..1f6169c026 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/brown_reinforced_concrete", + "side": "anvilcraft:block/brown_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..b5b27bb0e7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/brown_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..4a77ef590d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/brown_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..a661a22033 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/brown_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..cd9973d656 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/brown_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/brown_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cut_flint_pillar_horizontal.json b/src/generated/resources/assets/anvilcraft/models/block/cut_flint_pillar_horizontal.json deleted file mode 100644 index 7d60ade61b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/cut_flint_pillar_horizontal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column_horizontal", - "textures": { - "end": "anvilcraft:block/cut_flint_pillar_top", - "side": "anvilcraft:block/cut_flint_pillar" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete.json new file mode 100644 index 0000000000..76b9c5b44f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/cyan_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..b59b1fec29 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/cyan_reinforced_concrete", + "side": "anvilcraft:block/cyan_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..dfaaa92274 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/cyan_reinforced_concrete", + "side": "anvilcraft:block/cyan_reinforced_concrete", + "top": "anvilcraft:block/cyan_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..d3251cb764 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/cyan_reinforced_concrete", + "side": "anvilcraft:block/cyan_reinforced_concrete", + "top": "anvilcraft:block/cyan_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..ed386ab1b3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/cyan_reinforced_concrete", + "side": "anvilcraft:block/cyan_reinforced_concrete", + "top": "anvilcraft:block/cyan_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..7365039e84 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/cyan_reinforced_concrete", + "side": "anvilcraft:block/cyan_reinforced_concrete", + "top": "anvilcraft:block/cyan_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..d5647957f5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/cyan_reinforced_concrete", + "side": "anvilcraft:block/cyan_reinforced_concrete", + "top": "anvilcraft:block/cyan_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_top.json new file mode 100644 index 0000000000..222650ccf2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/cyan_reinforced_concrete", + "side": "anvilcraft:block/cyan_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..65aa628535 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/cyan_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..e904896968 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/cyan_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..0fb4c7ab7e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/cyan_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..f4a3ee506f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/cyan_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/cyan_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/ember_glass.json b/src/generated/resources/assets/anvilcraft/models/block/ember_glass.json index da261b62d0..edbecd46e9 100644 --- a/src/generated/resources/assets/anvilcraft/models/block/ember_glass.json +++ b/src/generated/resources/assets/anvilcraft/models/block/ember_glass.json @@ -1,7 +1,9 @@ { "parent": "minecraft:block/cube_all", - "render_type": "minecraft:translucent", "textures": { - "all": "anvilcraft:block/ember_glass" + "all": { + "force_translucent": true, + "sprite": "anvilcraft:block/ember_glass" + } } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/frost_glass.json b/src/generated/resources/assets/anvilcraft/models/block/frost_glass.json index b5d254276e..ba4844d265 100644 --- a/src/generated/resources/assets/anvilcraft/models/block/frost_glass.json +++ b/src/generated/resources/assets/anvilcraft/models/block/frost_glass.json @@ -1,7 +1,9 @@ { "parent": "minecraft:block/cube_all", - "render_type": "minecraft:translucent", "textures": { - "all": "anvilcraft:block/frost_glass" + "all": { + "force_translucent": true, + "sprite": "anvilcraft:block/frost_glass" + } } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete.json new file mode 100644 index 0000000000..b542fa2c55 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..ef1d0f2db4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/gray_reinforced_concrete", + "side": "anvilcraft:block/gray_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..0bcf58633b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/gray_reinforced_concrete", + "side": "anvilcraft:block/gray_reinforced_concrete", + "top": "anvilcraft:block/gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..52d864b723 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/gray_reinforced_concrete", + "side": "anvilcraft:block/gray_reinforced_concrete", + "top": "anvilcraft:block/gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..a8fc4d97ab --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/gray_reinforced_concrete", + "side": "anvilcraft:block/gray_reinforced_concrete", + "top": "anvilcraft:block/gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..7414c8932d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/gray_reinforced_concrete", + "side": "anvilcraft:block/gray_reinforced_concrete", + "top": "anvilcraft:block/gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..5e62d2ed6e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/gray_reinforced_concrete", + "side": "anvilcraft:block/gray_reinforced_concrete", + "top": "anvilcraft:block/gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_top.json new file mode 100644 index 0000000000..2d0fa4371a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/gray_reinforced_concrete", + "side": "anvilcraft:block/gray_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..e3d7e26050 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..114c853317 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..b7133ce852 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..fbaf2445b1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/gray_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete.json new file mode 100644 index 0000000000..6cc8ee7343 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/green_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..88ec8a2bc3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/green_reinforced_concrete", + "side": "anvilcraft:block/green_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..315392b29b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/green_reinforced_concrete", + "side": "anvilcraft:block/green_reinforced_concrete", + "top": "anvilcraft:block/green_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..08723459a6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/green_reinforced_concrete", + "side": "anvilcraft:block/green_reinforced_concrete", + "top": "anvilcraft:block/green_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..dc89374c2b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/green_reinforced_concrete", + "side": "anvilcraft:block/green_reinforced_concrete", + "top": "anvilcraft:block/green_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..9cd5487440 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/green_reinforced_concrete", + "side": "anvilcraft:block/green_reinforced_concrete", + "top": "anvilcraft:block/green_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..784f41d9a3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/green_reinforced_concrete", + "side": "anvilcraft:block/green_reinforced_concrete", + "top": "anvilcraft:block/green_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_top.json new file mode 100644 index 0000000000..3986338fc7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/green_reinforced_concrete", + "side": "anvilcraft:block/green_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..79e5ae7c4a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/green_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..f8122215c8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/green_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..893408074b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/green_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..a4709e0982 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/green_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/green_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete.json new file mode 100644 index 0000000000..f9c3def5e7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/light_blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..1e424015ac --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/light_blue_reinforced_concrete", + "side": "anvilcraft:block/light_blue_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..689651261f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/light_blue_reinforced_concrete", + "side": "anvilcraft:block/light_blue_reinforced_concrete", + "top": "anvilcraft:block/light_blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..fbfd4a6bfd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/light_blue_reinforced_concrete", + "side": "anvilcraft:block/light_blue_reinforced_concrete", + "top": "anvilcraft:block/light_blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..9f48d7ce2b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/light_blue_reinforced_concrete", + "side": "anvilcraft:block/light_blue_reinforced_concrete", + "top": "anvilcraft:block/light_blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..4022670661 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/light_blue_reinforced_concrete", + "side": "anvilcraft:block/light_blue_reinforced_concrete", + "top": "anvilcraft:block/light_blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..209127c99c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/light_blue_reinforced_concrete", + "side": "anvilcraft:block/light_blue_reinforced_concrete", + "top": "anvilcraft:block/light_blue_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_top.json new file mode 100644 index 0000000000..ccb8b45c10 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/light_blue_reinforced_concrete", + "side": "anvilcraft:block/light_blue_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..6c1ad36edd --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/light_blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..bc0dedde6d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/light_blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..d4f02846ce --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/light_blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..bcf6fd34b2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_blue_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/light_blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete.json new file mode 100644 index 0000000000..f11301f96e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/light_gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..2f3feff6b2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/light_gray_reinforced_concrete", + "side": "anvilcraft:block/light_gray_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..685a256ad5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/light_gray_reinforced_concrete", + "side": "anvilcraft:block/light_gray_reinforced_concrete", + "top": "anvilcraft:block/light_gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..3fcae1b778 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/light_gray_reinforced_concrete", + "side": "anvilcraft:block/light_gray_reinforced_concrete", + "top": "anvilcraft:block/light_gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..11470524fe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/light_gray_reinforced_concrete", + "side": "anvilcraft:block/light_gray_reinforced_concrete", + "top": "anvilcraft:block/light_gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..26911daf01 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/light_gray_reinforced_concrete", + "side": "anvilcraft:block/light_gray_reinforced_concrete", + "top": "anvilcraft:block/light_gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..e286c2e757 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/light_gray_reinforced_concrete", + "side": "anvilcraft:block/light_gray_reinforced_concrete", + "top": "anvilcraft:block/light_gray_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_top.json new file mode 100644 index 0000000000..eb548bc95d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/light_gray_reinforced_concrete", + "side": "anvilcraft:block/light_gray_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..9a84576cb3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/light_gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..a98cc6916c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/light_gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..485c46ed28 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/light_gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..cc26a8dc97 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/light_gray_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/light_gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete.json new file mode 100644 index 0000000000..280995908c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/lime_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..966e9e46c5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/lime_reinforced_concrete", + "side": "anvilcraft:block/lime_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2a79354f25 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/lime_reinforced_concrete", + "side": "anvilcraft:block/lime_reinforced_concrete", + "top": "anvilcraft:block/lime_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..7003545865 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/lime_reinforced_concrete", + "side": "anvilcraft:block/lime_reinforced_concrete", + "top": "anvilcraft:block/lime_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..34b94575e3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/lime_reinforced_concrete", + "side": "anvilcraft:block/lime_reinforced_concrete", + "top": "anvilcraft:block/lime_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..b7a581550b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/lime_reinforced_concrete", + "side": "anvilcraft:block/lime_reinforced_concrete", + "top": "anvilcraft:block/lime_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..aebc629a57 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/lime_reinforced_concrete", + "side": "anvilcraft:block/lime_reinforced_concrete", + "top": "anvilcraft:block/lime_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_top.json new file mode 100644 index 0000000000..c88cf2af00 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/lime_reinforced_concrete", + "side": "anvilcraft:block/lime_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..82db3e8492 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/lime_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..98048fb4b0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/lime_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..f0d42e351d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/lime_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..8dca3f6925 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/lime_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/lime_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete.json new file mode 100644 index 0000000000..8c3a272b13 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/magenta_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..bf0ce38a0f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/magenta_reinforced_concrete", + "side": "anvilcraft:block/magenta_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..27325294c7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/magenta_reinforced_concrete", + "side": "anvilcraft:block/magenta_reinforced_concrete", + "top": "anvilcraft:block/magenta_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..8506463333 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/magenta_reinforced_concrete", + "side": "anvilcraft:block/magenta_reinforced_concrete", + "top": "anvilcraft:block/magenta_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..b082bd8131 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/magenta_reinforced_concrete", + "side": "anvilcraft:block/magenta_reinforced_concrete", + "top": "anvilcraft:block/magenta_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..af4fe06a46 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/magenta_reinforced_concrete", + "side": "anvilcraft:block/magenta_reinforced_concrete", + "top": "anvilcraft:block/magenta_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..80f205265a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/magenta_reinforced_concrete", + "side": "anvilcraft:block/magenta_reinforced_concrete", + "top": "anvilcraft:block/magenta_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_top.json new file mode 100644 index 0000000000..72daa25460 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/magenta_reinforced_concrete", + "side": "anvilcraft:block/magenta_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..111c496a3a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/magenta_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..f2a7392040 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/magenta_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..999379cbea --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/magenta_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..e9955c9bfe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/magenta_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/magenta_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete.json new file mode 100644 index 0000000000..c7c83364b5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/orange_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..b4e96a8797 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/orange_reinforced_concrete", + "side": "anvilcraft:block/orange_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..d810c05f33 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/orange_reinforced_concrete", + "side": "anvilcraft:block/orange_reinforced_concrete", + "top": "anvilcraft:block/orange_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..00c9da59f0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/orange_reinforced_concrete", + "side": "anvilcraft:block/orange_reinforced_concrete", + "top": "anvilcraft:block/orange_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..6508e50e1f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/orange_reinforced_concrete", + "side": "anvilcraft:block/orange_reinforced_concrete", + "top": "anvilcraft:block/orange_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..346f117854 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/orange_reinforced_concrete", + "side": "anvilcraft:block/orange_reinforced_concrete", + "top": "anvilcraft:block/orange_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..2631436a69 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/orange_reinforced_concrete", + "side": "anvilcraft:block/orange_reinforced_concrete", + "top": "anvilcraft:block/orange_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_top.json new file mode 100644 index 0000000000..d628199aaf --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/orange_reinforced_concrete", + "side": "anvilcraft:block/orange_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..b20a793935 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/orange_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..e1fac03065 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/orange_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..ccd309b2e2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/orange_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..977f71f72d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/orange_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/orange_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete.json new file mode 100644 index 0000000000..777f96cea1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/pink_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..cdc5ff63d3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/pink_reinforced_concrete", + "side": "anvilcraft:block/pink_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..9a9da7492b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/pink_reinforced_concrete", + "side": "anvilcraft:block/pink_reinforced_concrete", + "top": "anvilcraft:block/pink_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..737ed09031 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/pink_reinforced_concrete", + "side": "anvilcraft:block/pink_reinforced_concrete", + "top": "anvilcraft:block/pink_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..179ffe38c8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/pink_reinforced_concrete", + "side": "anvilcraft:block/pink_reinforced_concrete", + "top": "anvilcraft:block/pink_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..d47c638b53 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/pink_reinforced_concrete", + "side": "anvilcraft:block/pink_reinforced_concrete", + "top": "anvilcraft:block/pink_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..f5b1b51dad --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/pink_reinforced_concrete", + "side": "anvilcraft:block/pink_reinforced_concrete", + "top": "anvilcraft:block/pink_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_top.json new file mode 100644 index 0000000000..38f7278df0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/pink_reinforced_concrete", + "side": "anvilcraft:block/pink_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..e1bfc8eab2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/pink_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..ad4be0eb73 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/pink_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..016e712ca3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/pink_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..47e2c02855 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/pink_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/pink_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete.json new file mode 100644 index 0000000000..8669a0ab96 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/purple_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..72a683af17 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/purple_reinforced_concrete", + "side": "anvilcraft:block/purple_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..d57762336a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/purple_reinforced_concrete", + "side": "anvilcraft:block/purple_reinforced_concrete", + "top": "anvilcraft:block/purple_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..f88f2fb020 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/purple_reinforced_concrete", + "side": "anvilcraft:block/purple_reinforced_concrete", + "top": "anvilcraft:block/purple_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..f7c6cc2c20 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/purple_reinforced_concrete", + "side": "anvilcraft:block/purple_reinforced_concrete", + "top": "anvilcraft:block/purple_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..0b67197305 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/purple_reinforced_concrete", + "side": "anvilcraft:block/purple_reinforced_concrete", + "top": "anvilcraft:block/purple_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..263dcc85ca --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/purple_reinforced_concrete", + "side": "anvilcraft:block/purple_reinforced_concrete", + "top": "anvilcraft:block/purple_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_top.json new file mode 100644 index 0000000000..07d3077e64 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/purple_reinforced_concrete", + "side": "anvilcraft:block/purple_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..169b8fc7a6 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/purple_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..6eed8d140b --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/purple_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..0b3f2f8a1f --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/purple_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..131ad4a336 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/purple_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/purple_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete.json new file mode 100644 index 0000000000..741ded09d3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/red_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..df2c4147b9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/red_reinforced_concrete", + "side": "anvilcraft:block/red_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2f8203fa8a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/red_reinforced_concrete", + "side": "anvilcraft:block/red_reinforced_concrete", + "top": "anvilcraft:block/red_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..6573cc4f61 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/red_reinforced_concrete", + "side": "anvilcraft:block/red_reinforced_concrete", + "top": "anvilcraft:block/red_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..c5771ebda7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/red_reinforced_concrete", + "side": "anvilcraft:block/red_reinforced_concrete", + "top": "anvilcraft:block/red_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..3eed84255c --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/red_reinforced_concrete", + "side": "anvilcraft:block/red_reinforced_concrete", + "top": "anvilcraft:block/red_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..c683d5f786 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/red_reinforced_concrete", + "side": "anvilcraft:block/red_reinforced_concrete", + "top": "anvilcraft:block/red_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_top.json new file mode 100644 index 0000000000..e89fade0ae --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/red_reinforced_concrete", + "side": "anvilcraft:block/red_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..ff18d28a5a --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/red_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..cee8d7e8bb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/red_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..f642ab75e1 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/red_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..3c0a958ebe --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/red_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/red_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black.json deleted file mode 100644 index b95c7e814b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_black" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab.json deleted file mode 100644 index c6b5ed7d80..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_black", - "side": "anvilcraft:block/reinforced_concrete_black", - "top": "anvilcraft:block/reinforced_concrete_black" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab_top.json deleted file mode 100644 index 4899434da1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_black", - "side": "anvilcraft:block/reinforced_concrete_black", - "top": "anvilcraft:block/reinforced_concrete_black" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair.json deleted file mode 100644 index 2408ec6241..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_black", - "side": "anvilcraft:block/reinforced_concrete_black", - "top": "anvilcraft:block/reinforced_concrete_black" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_inner.json deleted file mode 100644 index 14dca48a8c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_black", - "side": "anvilcraft:block/reinforced_concrete_black", - "top": "anvilcraft:block/reinforced_concrete_black" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_outer.json deleted file mode 100644 index ccce427811..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_black", - "side": "anvilcraft:block/reinforced_concrete_black", - "top": "anvilcraft:block/reinforced_concrete_black" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_post.json deleted file mode 100644 index 28d2619e90..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_black_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side.json deleted file mode 100644 index 4a3703c3f8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_black_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side_tall.json deleted file mode 100644 index 155f18b29c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_black_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_black_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue.json deleted file mode 100644 index 87d31051f4..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab.json deleted file mode 100644 index 032d07b760..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_blue", - "side": "anvilcraft:block/reinforced_concrete_blue", - "top": "anvilcraft:block/reinforced_concrete_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab_top.json deleted file mode 100644 index dd1dc57c7a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_blue", - "side": "anvilcraft:block/reinforced_concrete_blue", - "top": "anvilcraft:block/reinforced_concrete_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair.json deleted file mode 100644 index 9ec43018c7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_blue", - "side": "anvilcraft:block/reinforced_concrete_blue", - "top": "anvilcraft:block/reinforced_concrete_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_inner.json deleted file mode 100644 index e34c5b75b2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_blue", - "side": "anvilcraft:block/reinforced_concrete_blue", - "top": "anvilcraft:block/reinforced_concrete_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_outer.json deleted file mode 100644 index b099b260f8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_blue", - "side": "anvilcraft:block/reinforced_concrete_blue", - "top": "anvilcraft:block/reinforced_concrete_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_post.json deleted file mode 100644 index eec43e44ad..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side.json deleted file mode 100644 index 454f6d2652..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side_tall.json deleted file mode 100644 index 51d33d5d70..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_blue_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_black.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_black.json deleted file mode 100644 index 197d01aaf9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_black.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_black", - "side": "anvilcraft:block/reinforced_concrete_black_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_blue.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_blue.json deleted file mode 100644 index 5c3718435d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_blue.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_blue", - "side": "anvilcraft:block/reinforced_concrete_blue_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_brown.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_brown.json deleted file mode 100644 index dfdd171bc0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_brown.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_brown", - "side": "anvilcraft:block/reinforced_concrete_brown_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_cyan.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_cyan.json deleted file mode 100644 index ca1406ac7a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_cyan.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_cyan", - "side": "anvilcraft:block/reinforced_concrete_cyan_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_gray.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_gray.json deleted file mode 100644 index 3b1d29d8ec..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_gray.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_gray", - "side": "anvilcraft:block/reinforced_concrete_gray_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_green.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_green.json deleted file mode 100644 index 2d005ac0e8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_green.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_green", - "side": "anvilcraft:block/reinforced_concrete_green_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_blue.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_blue.json deleted file mode 100644 index ba3cb894de..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_blue.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_light_blue", - "side": "anvilcraft:block/reinforced_concrete_light_blue_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_gray.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_gray.json deleted file mode 100644 index 2a7249fc5b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_light_gray.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_light_gray", - "side": "anvilcraft:block/reinforced_concrete_light_gray_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_lime.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_lime.json deleted file mode 100644 index 5021b28c3d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_lime.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_lime", - "side": "anvilcraft:block/reinforced_concrete_lime_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_magenta.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_magenta.json deleted file mode 100644 index cfc8e5be93..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_magenta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_magenta", - "side": "anvilcraft:block/reinforced_concrete_magenta_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_orange.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_orange.json deleted file mode 100644 index 3b72aab110..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_orange.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_orange", - "side": "anvilcraft:block/reinforced_concrete_orange_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_pink.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_pink.json deleted file mode 100644 index 34b1b384dd..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_pink.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_pink", - "side": "anvilcraft:block/reinforced_concrete_pink_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_purple.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_purple.json deleted file mode 100644 index 7e1f2afee2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_purple.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_purple", - "side": "anvilcraft:block/reinforced_concrete_purple_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_red.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_red.json deleted file mode 100644 index 9c7d25cebb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_red.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_red", - "side": "anvilcraft:block/reinforced_concrete_red_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_white.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_white.json deleted file mode 100644 index bbed18c2b5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_white.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_white", - "side": "anvilcraft:block/reinforced_concrete_white_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_yellow.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_yellow.json deleted file mode 100644 index dbad29e934..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_bottom_yellow.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_yellow", - "side": "anvilcraft:block/reinforced_concrete_yellow_bottom" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown.json deleted file mode 100644 index 7c21f7b81e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_brown" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab.json deleted file mode 100644 index 4fcb37a833..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_brown", - "side": "anvilcraft:block/reinforced_concrete_brown", - "top": "anvilcraft:block/reinforced_concrete_brown" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab_top.json deleted file mode 100644 index e4bb378b81..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_brown", - "side": "anvilcraft:block/reinforced_concrete_brown", - "top": "anvilcraft:block/reinforced_concrete_brown" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair.json deleted file mode 100644 index 04673cdd5a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_brown", - "side": "anvilcraft:block/reinforced_concrete_brown", - "top": "anvilcraft:block/reinforced_concrete_brown" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_inner.json deleted file mode 100644 index dd51a1ae9e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_brown", - "side": "anvilcraft:block/reinforced_concrete_brown", - "top": "anvilcraft:block/reinforced_concrete_brown" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_outer.json deleted file mode 100644 index 0576baf817..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_brown", - "side": "anvilcraft:block/reinforced_concrete_brown", - "top": "anvilcraft:block/reinforced_concrete_brown" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_post.json deleted file mode 100644 index 9ed8ff02ff..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_brown_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side.json deleted file mode 100644 index 6a1649ecb9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_brown_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side_tall.json deleted file mode 100644 index fe833b142b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_brown_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_brown_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan.json deleted file mode 100644 index c85d0b5541..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_cyan" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab.json deleted file mode 100644 index 10b7b84bf9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_cyan", - "side": "anvilcraft:block/reinforced_concrete_cyan", - "top": "anvilcraft:block/reinforced_concrete_cyan" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab_top.json deleted file mode 100644 index 224c331e51..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_cyan", - "side": "anvilcraft:block/reinforced_concrete_cyan", - "top": "anvilcraft:block/reinforced_concrete_cyan" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair.json deleted file mode 100644 index ed53f719ff..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_cyan", - "side": "anvilcraft:block/reinforced_concrete_cyan", - "top": "anvilcraft:block/reinforced_concrete_cyan" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_inner.json deleted file mode 100644 index 569e8ea2af..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_cyan", - "side": "anvilcraft:block/reinforced_concrete_cyan", - "top": "anvilcraft:block/reinforced_concrete_cyan" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_outer.json deleted file mode 100644 index 230a5b2d40..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_cyan", - "side": "anvilcraft:block/reinforced_concrete_cyan", - "top": "anvilcraft:block/reinforced_concrete_cyan" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_post.json deleted file mode 100644 index 7351169ab7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_cyan_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side.json deleted file mode 100644 index 6ab1c4cb84..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_cyan_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side_tall.json deleted file mode 100644 index bd690a085b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_cyan_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_cyan_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray.json deleted file mode 100644 index 7f5c2050d8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab.json deleted file mode 100644 index e947e37818..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_gray", - "side": "anvilcraft:block/reinforced_concrete_gray", - "top": "anvilcraft:block/reinforced_concrete_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab_top.json deleted file mode 100644 index cd0cb05dd2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_gray", - "side": "anvilcraft:block/reinforced_concrete_gray", - "top": "anvilcraft:block/reinforced_concrete_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair.json deleted file mode 100644 index 3ae01f0bbc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_gray", - "side": "anvilcraft:block/reinforced_concrete_gray", - "top": "anvilcraft:block/reinforced_concrete_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_inner.json deleted file mode 100644 index aaa49373f4..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_gray", - "side": "anvilcraft:block/reinforced_concrete_gray", - "top": "anvilcraft:block/reinforced_concrete_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_outer.json deleted file mode 100644 index 336f2447fa..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_gray", - "side": "anvilcraft:block/reinforced_concrete_gray", - "top": "anvilcraft:block/reinforced_concrete_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_post.json deleted file mode 100644 index fe2ec50a38..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side.json deleted file mode 100644 index 28d0a89f27..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side_tall.json deleted file mode 100644 index f4b9b634d8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_gray_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green.json deleted file mode 100644 index fb6010143d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_green" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab.json deleted file mode 100644 index e778de04ea..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_green", - "side": "anvilcraft:block/reinforced_concrete_green", - "top": "anvilcraft:block/reinforced_concrete_green" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab_top.json deleted file mode 100644 index 6c28bb7a32..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_green", - "side": "anvilcraft:block/reinforced_concrete_green", - "top": "anvilcraft:block/reinforced_concrete_green" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair.json deleted file mode 100644 index c938821d9d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_green", - "side": "anvilcraft:block/reinforced_concrete_green", - "top": "anvilcraft:block/reinforced_concrete_green" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_inner.json deleted file mode 100644 index 6ab54f69ae..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_green", - "side": "anvilcraft:block/reinforced_concrete_green", - "top": "anvilcraft:block/reinforced_concrete_green" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_outer.json deleted file mode 100644 index 705a9ea783..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_green", - "side": "anvilcraft:block/reinforced_concrete_green", - "top": "anvilcraft:block/reinforced_concrete_green" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_post.json deleted file mode 100644 index 62ea6029a2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_green_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side.json deleted file mode 100644 index f72f98e7bc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_green_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side_tall.json deleted file mode 100644 index ab35a5e021..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_green_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_green_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue.json deleted file mode 100644 index 67ce99f8ba..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_light_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index 19c81eb7cc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_blue", - "side": "anvilcraft:block/reinforced_concrete_light_blue", - "top": "anvilcraft:block/reinforced_concrete_light_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab_top.json deleted file mode 100644 index da14d62beb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_blue", - "side": "anvilcraft:block/reinforced_concrete_light_blue", - "top": "anvilcraft:block/reinforced_concrete_light_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index 4217d32b4a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_blue", - "side": "anvilcraft:block/reinforced_concrete_light_blue", - "top": "anvilcraft:block/reinforced_concrete_light_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_inner.json deleted file mode 100644 index 0e0733fc51..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_blue", - "side": "anvilcraft:block/reinforced_concrete_light_blue", - "top": "anvilcraft:block/reinforced_concrete_light_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_outer.json deleted file mode 100644 index 0c33d2afce..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_blue", - "side": "anvilcraft:block/reinforced_concrete_light_blue", - "top": "anvilcraft:block/reinforced_concrete_light_blue" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_post.json deleted file mode 100644 index a25168f792..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side.json deleted file mode 100644 index b0dc0e12c1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side_tall.json deleted file mode 100644 index ca67d6aadc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_blue_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray.json deleted file mode 100644 index cc75af7a44..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_light_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index 2efc64c921..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_gray", - "side": "anvilcraft:block/reinforced_concrete_light_gray", - "top": "anvilcraft:block/reinforced_concrete_light_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab_top.json deleted file mode 100644 index d38057061d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_gray", - "side": "anvilcraft:block/reinforced_concrete_light_gray", - "top": "anvilcraft:block/reinforced_concrete_light_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index 0ff127f4f4..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_gray", - "side": "anvilcraft:block/reinforced_concrete_light_gray", - "top": "anvilcraft:block/reinforced_concrete_light_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_inner.json deleted file mode 100644 index cb5fbae250..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_gray", - "side": "anvilcraft:block/reinforced_concrete_light_gray", - "top": "anvilcraft:block/reinforced_concrete_light_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_outer.json deleted file mode 100644 index 8b3481b568..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_light_gray", - "side": "anvilcraft:block/reinforced_concrete_light_gray", - "top": "anvilcraft:block/reinforced_concrete_light_gray" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_post.json deleted file mode 100644 index 8f1aade67c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side.json deleted file mode 100644 index f901900af0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side_tall.json deleted file mode 100644 index 3a7ceaacd7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_light_gray_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime.json deleted file mode 100644 index e6c70040a8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_lime" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab.json deleted file mode 100644 index d72e6d6145..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_lime", - "side": "anvilcraft:block/reinforced_concrete_lime", - "top": "anvilcraft:block/reinforced_concrete_lime" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab_top.json deleted file mode 100644 index a849bd0784..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_lime", - "side": "anvilcraft:block/reinforced_concrete_lime", - "top": "anvilcraft:block/reinforced_concrete_lime" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair.json deleted file mode 100644 index 321f68ddf3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_lime", - "side": "anvilcraft:block/reinforced_concrete_lime", - "top": "anvilcraft:block/reinforced_concrete_lime" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_inner.json deleted file mode 100644 index d509c694fa..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_lime", - "side": "anvilcraft:block/reinforced_concrete_lime", - "top": "anvilcraft:block/reinforced_concrete_lime" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_outer.json deleted file mode 100644 index cb6583cb73..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_lime", - "side": "anvilcraft:block/reinforced_concrete_lime", - "top": "anvilcraft:block/reinforced_concrete_lime" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_post.json deleted file mode 100644 index 3aa700ab0b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_lime_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side.json deleted file mode 100644 index f47c73f9c0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_lime_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side_tall.json deleted file mode 100644 index 9d50d91cb8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_lime_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_lime_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta.json deleted file mode 100644 index 6ea40d7f43..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_magenta" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab.json deleted file mode 100644 index 379e600839..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_magenta", - "side": "anvilcraft:block/reinforced_concrete_magenta", - "top": "anvilcraft:block/reinforced_concrete_magenta" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab_top.json deleted file mode 100644 index 7571e69d66..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_magenta", - "side": "anvilcraft:block/reinforced_concrete_magenta", - "top": "anvilcraft:block/reinforced_concrete_magenta" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair.json deleted file mode 100644 index 26707cbc54..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_magenta", - "side": "anvilcraft:block/reinforced_concrete_magenta", - "top": "anvilcraft:block/reinforced_concrete_magenta" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_inner.json deleted file mode 100644 index db567c7424..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_magenta", - "side": "anvilcraft:block/reinforced_concrete_magenta", - "top": "anvilcraft:block/reinforced_concrete_magenta" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_outer.json deleted file mode 100644 index 7b353f609d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_magenta", - "side": "anvilcraft:block/reinforced_concrete_magenta", - "top": "anvilcraft:block/reinforced_concrete_magenta" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_post.json deleted file mode 100644 index 82121c23bd..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_magenta_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side.json deleted file mode 100644 index 7ab94f4e73..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_magenta_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side_tall.json deleted file mode 100644 index 2eccd6f570..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_magenta_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_magenta_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange.json deleted file mode 100644 index aff36e4262..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_orange" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab.json deleted file mode 100644 index c4567d55d1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_orange", - "side": "anvilcraft:block/reinforced_concrete_orange", - "top": "anvilcraft:block/reinforced_concrete_orange" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab_top.json deleted file mode 100644 index f59cf95538..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_orange", - "side": "anvilcraft:block/reinforced_concrete_orange", - "top": "anvilcraft:block/reinforced_concrete_orange" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair.json deleted file mode 100644 index 02b2a63df8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_orange", - "side": "anvilcraft:block/reinforced_concrete_orange", - "top": "anvilcraft:block/reinforced_concrete_orange" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_inner.json deleted file mode 100644 index 22692c4f02..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_orange", - "side": "anvilcraft:block/reinforced_concrete_orange", - "top": "anvilcraft:block/reinforced_concrete_orange" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_outer.json deleted file mode 100644 index a05195fe7c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_orange", - "side": "anvilcraft:block/reinforced_concrete_orange", - "top": "anvilcraft:block/reinforced_concrete_orange" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_post.json deleted file mode 100644 index b6d66ce339..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_orange_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side.json deleted file mode 100644 index 93836317d9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_orange_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side_tall.json deleted file mode 100644 index 2067ff049b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_orange_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_orange_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink.json deleted file mode 100644 index 2a5dc43d46..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_pink" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab.json deleted file mode 100644 index 1943e20d6d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_pink", - "side": "anvilcraft:block/reinforced_concrete_pink", - "top": "anvilcraft:block/reinforced_concrete_pink" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab_top.json deleted file mode 100644 index 431304c3ca..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_pink", - "side": "anvilcraft:block/reinforced_concrete_pink", - "top": "anvilcraft:block/reinforced_concrete_pink" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair.json deleted file mode 100644 index 4036e7d453..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_pink", - "side": "anvilcraft:block/reinforced_concrete_pink", - "top": "anvilcraft:block/reinforced_concrete_pink" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_inner.json deleted file mode 100644 index 495951f758..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_pink", - "side": "anvilcraft:block/reinforced_concrete_pink", - "top": "anvilcraft:block/reinforced_concrete_pink" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_outer.json deleted file mode 100644 index 01ff491753..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_pink", - "side": "anvilcraft:block/reinforced_concrete_pink", - "top": "anvilcraft:block/reinforced_concrete_pink" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_post.json deleted file mode 100644 index 28d550e38b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_pink_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side.json deleted file mode 100644 index 20bb47e528..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_pink_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side_tall.json deleted file mode 100644 index 077d4375fb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_pink_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_pink_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple.json deleted file mode 100644 index edaa072988..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_purple" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab.json deleted file mode 100644 index 0dbe528589..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_purple", - "side": "anvilcraft:block/reinforced_concrete_purple", - "top": "anvilcraft:block/reinforced_concrete_purple" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab_top.json deleted file mode 100644 index bade7a9c65..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_purple", - "side": "anvilcraft:block/reinforced_concrete_purple", - "top": "anvilcraft:block/reinforced_concrete_purple" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair.json deleted file mode 100644 index 70f9c91845..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_purple", - "side": "anvilcraft:block/reinforced_concrete_purple", - "top": "anvilcraft:block/reinforced_concrete_purple" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_inner.json deleted file mode 100644 index 3aab1d3452..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_purple", - "side": "anvilcraft:block/reinforced_concrete_purple", - "top": "anvilcraft:block/reinforced_concrete_purple" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_outer.json deleted file mode 100644 index 6843c064f6..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_purple", - "side": "anvilcraft:block/reinforced_concrete_purple", - "top": "anvilcraft:block/reinforced_concrete_purple" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_post.json deleted file mode 100644 index bc50d3d485..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_purple_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side.json deleted file mode 100644 index 2eda8026c7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_purple_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side_tall.json deleted file mode 100644 index a792ec4779..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_purple_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_purple_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red.json deleted file mode 100644 index 5147797d03..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_red" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab.json deleted file mode 100644 index 2024ef0c15..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_red", - "side": "anvilcraft:block/reinforced_concrete_red", - "top": "anvilcraft:block/reinforced_concrete_red" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab_top.json deleted file mode 100644 index fb8e1509bd..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_red", - "side": "anvilcraft:block/reinforced_concrete_red", - "top": "anvilcraft:block/reinforced_concrete_red" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair.json deleted file mode 100644 index 89e21775f8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_red", - "side": "anvilcraft:block/reinforced_concrete_red", - "top": "anvilcraft:block/reinforced_concrete_red" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_inner.json deleted file mode 100644 index a580150922..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_red", - "side": "anvilcraft:block/reinforced_concrete_red", - "top": "anvilcraft:block/reinforced_concrete_red" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_outer.json deleted file mode 100644 index 78ef8689e3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_red", - "side": "anvilcraft:block/reinforced_concrete_red", - "top": "anvilcraft:block/reinforced_concrete_red" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_post.json deleted file mode 100644 index e1cfb0b2e1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_red_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side.json deleted file mode 100644 index 9f96dea1c0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_red_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side_tall.json deleted file mode 100644 index f49bc74e0e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_red_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_red_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_black.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_black.json deleted file mode 100644 index b681f05afd..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_black.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_black", - "side": "anvilcraft:block/reinforced_concrete_black_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_blue.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_blue.json deleted file mode 100644 index e8b1c6986c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_blue.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_blue", - "side": "anvilcraft:block/reinforced_concrete_blue_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_brown.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_brown.json deleted file mode 100644 index a71753b9f7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_brown.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_brown", - "side": "anvilcraft:block/reinforced_concrete_brown_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_cyan.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_cyan.json deleted file mode 100644 index e1479beee0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_cyan.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_cyan", - "side": "anvilcraft:block/reinforced_concrete_cyan_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_gray.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_gray.json deleted file mode 100644 index 9e82ae2e1f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_gray.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_gray", - "side": "anvilcraft:block/reinforced_concrete_gray_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_green.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_green.json deleted file mode 100644 index 7dd7b5b6c3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_green.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_green", - "side": "anvilcraft:block/reinforced_concrete_green_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_blue.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_blue.json deleted file mode 100644 index 2de5c7deff..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_blue.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_light_blue", - "side": "anvilcraft:block/reinforced_concrete_light_blue_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_gray.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_gray.json deleted file mode 100644 index 72d32aa526..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_light_gray.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_light_gray", - "side": "anvilcraft:block/reinforced_concrete_light_gray_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_lime.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_lime.json deleted file mode 100644 index 89b81d8e3c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_lime.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_lime", - "side": "anvilcraft:block/reinforced_concrete_lime_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_magenta.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_magenta.json deleted file mode 100644 index 7388ccd8a1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_magenta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_magenta", - "side": "anvilcraft:block/reinforced_concrete_magenta_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_orange.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_orange.json deleted file mode 100644 index 057636c798..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_orange.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_orange", - "side": "anvilcraft:block/reinforced_concrete_orange_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_pink.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_pink.json deleted file mode 100644 index e20a19297b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_pink.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_pink", - "side": "anvilcraft:block/reinforced_concrete_pink_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_purple.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_purple.json deleted file mode 100644 index 13b5f56c13..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_purple.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_purple", - "side": "anvilcraft:block/reinforced_concrete_purple_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_red.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_red.json deleted file mode 100644 index 96adb877b0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_red.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_red", - "side": "anvilcraft:block/reinforced_concrete_red_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_white.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_white.json deleted file mode 100644 index 6f93657b43..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_white.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_white", - "side": "anvilcraft:block/reinforced_concrete_white_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_yellow.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_yellow.json deleted file mode 100644 index 8911a1e585..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_top_yellow.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/cube_column", - "textures": { - "end": "anvilcraft:block/reinforced_concrete_yellow", - "side": "anvilcraft:block/reinforced_concrete_yellow_top" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white.json deleted file mode 100644 index e354b573b8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_white" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab.json deleted file mode 100644 index 22ed5947ca..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_white", - "side": "anvilcraft:block/reinforced_concrete_white", - "top": "anvilcraft:block/reinforced_concrete_white" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab_top.json deleted file mode 100644 index da7dfad420..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_white", - "side": "anvilcraft:block/reinforced_concrete_white", - "top": "anvilcraft:block/reinforced_concrete_white" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair.json deleted file mode 100644 index 06943598c3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_white", - "side": "anvilcraft:block/reinforced_concrete_white", - "top": "anvilcraft:block/reinforced_concrete_white" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_inner.json deleted file mode 100644 index 4de340b18f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_white", - "side": "anvilcraft:block/reinforced_concrete_white", - "top": "anvilcraft:block/reinforced_concrete_white" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_outer.json deleted file mode 100644 index 49802add99..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_white", - "side": "anvilcraft:block/reinforced_concrete_white", - "top": "anvilcraft:block/reinforced_concrete_white" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_post.json deleted file mode 100644 index 946cb9c71a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_white_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side.json deleted file mode 100644 index 7b128884db..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_white_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side_tall.json deleted file mode 100644 index ad2dd77c1b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_white_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_white_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow.json deleted file mode 100644 index 1925d941f1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "anvilcraft:block/reinforced_concrete_yellow" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab.json deleted file mode 100644 index 50c958d9e0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_yellow", - "side": "anvilcraft:block/reinforced_concrete_yellow", - "top": "anvilcraft:block/reinforced_concrete_yellow" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab_top.json deleted file mode 100644 index 7087e3ef8b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/slab_top", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_yellow", - "side": "anvilcraft:block/reinforced_concrete_yellow", - "top": "anvilcraft:block/reinforced_concrete_yellow" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair.json deleted file mode 100644 index 593552b238..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_yellow", - "side": "anvilcraft:block/reinforced_concrete_yellow", - "top": "anvilcraft:block/reinforced_concrete_yellow" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_inner.json deleted file mode 100644 index 0f257df8a3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/inner_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_yellow", - "side": "anvilcraft:block/reinforced_concrete_yellow", - "top": "anvilcraft:block/reinforced_concrete_yellow" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_outer.json deleted file mode 100644 index 60c057bbe5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_stair_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:block/outer_stairs", - "textures": { - "bottom": "anvilcraft:block/reinforced_concrete_yellow", - "side": "anvilcraft:block/reinforced_concrete_yellow", - "top": "anvilcraft:block/reinforced_concrete_yellow" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_post.json deleted file mode 100644 index 50fbb602a8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_post", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_yellow_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side.json deleted file mode 100644 index 876f1d1dd1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_yellow_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side_tall.json deleted file mode 100644 index 99e8d8ce68..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/block/reinforced_concrete_yellow_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_yellow_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/sugar_block1.json b/src/generated/resources/assets/anvilcraft/models/block/sugar_block_1.json similarity index 100% rename from src/generated/resources/assets/anvilcraft/models/block/sugar_block1.json rename to src/generated/resources/assets/anvilcraft/models/block/sugar_block_1.json diff --git a/src/generated/resources/assets/anvilcraft/models/block/sugar_block2.json b/src/generated/resources/assets/anvilcraft/models/block/sugar_block_2.json similarity index 100% rename from src/generated/resources/assets/anvilcraft/models/block/sugar_block2.json rename to src/generated/resources/assets/anvilcraft/models/block/sugar_block_2.json diff --git a/src/generated/resources/assets/anvilcraft/models/block/sugar_block3.json b/src/generated/resources/assets/anvilcraft/models/block/sugar_block_3.json similarity index 100% rename from src/generated/resources/assets/anvilcraft/models/block/sugar_block3.json rename to src/generated/resources/assets/anvilcraft/models/block/sugar_block_3.json diff --git a/src/generated/resources/assets/anvilcraft/models/block/tempering_glass.json b/src/generated/resources/assets/anvilcraft/models/block/tempering_glass.json index d8fbba4702..2d5b23cc05 100644 --- a/src/generated/resources/assets/anvilcraft/models/block/tempering_glass.json +++ b/src/generated/resources/assets/anvilcraft/models/block/tempering_glass.json @@ -1,7 +1,9 @@ { "parent": "minecraft:block/cube_all", - "render_type": "minecraft:translucent", "textures": { - "all": "anvilcraft:block/tempering_glass" + "all": { + "force_translucent": true, + "sprite": "anvilcraft:block/tempering_glass" + } } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete.json new file mode 100644 index 0000000000..e1907bf4ca --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/white_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..13f3d2af35 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/white_reinforced_concrete", + "side": "anvilcraft:block/white_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..feacaeccb0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/white_reinforced_concrete", + "side": "anvilcraft:block/white_reinforced_concrete", + "top": "anvilcraft:block/white_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..896381d700 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/white_reinforced_concrete", + "side": "anvilcraft:block/white_reinforced_concrete", + "top": "anvilcraft:block/white_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..c7d2e1c6a9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/white_reinforced_concrete", + "side": "anvilcraft:block/white_reinforced_concrete", + "top": "anvilcraft:block/white_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..5c9b077a2d --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/white_reinforced_concrete", + "side": "anvilcraft:block/white_reinforced_concrete", + "top": "anvilcraft:block/white_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..ba4e907781 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/white_reinforced_concrete", + "side": "anvilcraft:block/white_reinforced_concrete", + "top": "anvilcraft:block/white_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_top.json new file mode 100644 index 0000000000..e19f969ec5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/white_reinforced_concrete", + "side": "anvilcraft:block/white_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..9748b26dc5 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/white_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..80ef80b561 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/white_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..f18a1196d8 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/white_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..ef03bcc82e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/white_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/white_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete.json new file mode 100644 index 0000000000..7f7417bc88 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "anvilcraft:block/yellow_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_bottom.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_bottom.json new file mode 100644 index 0000000000..9bf62090f3 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/yellow_reinforced_concrete", + "side": "anvilcraft:block/yellow_reinforced_concrete_bottom" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2840bb1070 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "anvilcraft:block/yellow_reinforced_concrete", + "side": "anvilcraft:block/yellow_reinforced_concrete", + "top": "anvilcraft:block/yellow_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab_top.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab_top.json new file mode 100644 index 0000000000..19c95b19e7 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "anvilcraft:block/yellow_reinforced_concrete", + "side": "anvilcraft:block/yellow_reinforced_concrete", + "top": "anvilcraft:block/yellow_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..b50742dd5e --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "anvilcraft:block/yellow_reinforced_concrete", + "side": "anvilcraft:block/yellow_reinforced_concrete", + "top": "anvilcraft:block/yellow_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_inner.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_inner.json new file mode 100644 index 0000000000..fee6faa968 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "anvilcraft:block/yellow_reinforced_concrete", + "side": "anvilcraft:block/yellow_reinforced_concrete", + "top": "anvilcraft:block/yellow_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_outer.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_outer.json new file mode 100644 index 0000000000..db50e66fe0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_stair_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "anvilcraft:block/yellow_reinforced_concrete", + "side": "anvilcraft:block/yellow_reinforced_concrete", + "top": "anvilcraft:block/yellow_reinforced_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_top.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_top.json new file mode 100644 index 0000000000..073135b541 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_top.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "anvilcraft:block/yellow_reinforced_concrete", + "side": "anvilcraft:block/yellow_reinforced_concrete_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_inventory.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_inventory.json new file mode 100644 index 0000000000..4f8d12ffa9 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "anvilcraft:block/yellow_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_post.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_post.json new file mode 100644 index 0000000000..c6895614e4 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "anvilcraft:block/yellow_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side.json new file mode 100644 index 0000000000..26919813d2 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "anvilcraft:block/yellow_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side_tall.json b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side_tall.json new file mode 100644 index 0000000000..9ae3baa5e0 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/block/yellow_reinforced_concrete_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "anvilcraft:block/yellow_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/acceleration_ring.json b/src/generated/resources/assets/anvilcraft/models/item/acceleration_ring.json deleted file mode 100644 index 5bf34d5ed5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/acceleration_ring.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/acceleration_ring" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/activator_sliding_rail.json b/src/generated/resources/assets/anvilcraft/models/item/activator_sliding_rail.json deleted file mode 100644 index 3470f8a5ea..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/activator_sliding_rail.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/activator_sliding_rail" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/active_silencer.json b/src/generated/resources/assets/anvilcraft/models/item/active_silencer.json deleted file mode 100644 index 61da72edc0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/active_silencer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/active_silencer" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/advanced_comparator.json b/src/generated/resources/assets/anvilcraft/models/item/advanced_comparator.json deleted file mode 100644 index 0dfc66d3bb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/advanced_comparator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/advanced_comparator" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/amber_block.json b/src/generated/resources/assets/anvilcraft/models/item/amber_block.json deleted file mode 100644 index 8fc4cc41b7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/amber_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/amber_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/arrow.json b/src/generated/resources/assets/anvilcraft/models/item/arrow.json deleted file mode 100644 index 0ae8ccf5bd..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/arrow.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/arrow" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/batch_crafter.json b/src/generated/resources/assets/anvilcraft/models/item/batch_crafter.json deleted file mode 100644 index 374a91d6b4..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/batch_crafter.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/batch_crafter" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/batch_cutter.json b/src/generated/resources/assets/anvilcraft/models/item/batch_cutter.json deleted file mode 100644 index 86e75f749d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/batch_cutter.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/batch_cutter" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/berry_cake_block.json b/src/generated/resources/assets/anvilcraft/models/item/berry_cake_block.json deleted file mode 100644 index f175f4a7ab..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/berry_cake_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/berry_cake_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/berry_cream_block.json b/src/generated/resources/assets/anvilcraft/models/item/berry_cream_block.json deleted file mode 100644 index 286f6dcec5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/berry_cream_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/berry_cream_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/black_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/black_cement_bucket.json deleted file mode 100644 index 1188f16fd2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/black_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:black_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_block.json b/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_block.json deleted file mode 100644 index 836203e050..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/black_chocolate_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_slab.json b/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_slab.json deleted file mode 100644 index 718b49c05c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/black_chocolate_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_stairs.json deleted file mode 100644 index c8957a7d2d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/black_chocolate_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/black_chocolate_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/black_hole.json b/src/generated/resources/assets/anvilcraft/models/item/black_hole.json deleted file mode 100644 index 65ee11a494..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/black_hole.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/black_hole" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/block_comparator.json b/src/generated/resources/assets/anvilcraft/models/item/block_comparator.json deleted file mode 100644 index 72bd13f21b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/block_comparator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/block_comparator" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/block_devourer.json b/src/generated/resources/assets/anvilcraft/models/item/block_devourer.json deleted file mode 100644 index e61678cf4c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/block_devourer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/block_devourer" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/block_placer.json b/src/generated/resources/assets/anvilcraft/models/item/block_placer.json deleted file mode 100644 index e56a151be2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/block_placer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/block_placer" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/blue_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/blue_cement_bucket.json deleted file mode 100644 index 42b72f9694..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/blue_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:blue_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/brass_block.json b/src/generated/resources/assets/anvilcraft/models/item/brass_block.json deleted file mode 100644 index eb0265933e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/brass_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/brass_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/brass_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/brass_pressure_plate.json deleted file mode 100644 index 2b9ac85baa..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/brass_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/brass_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/bronze_block.json b/src/generated/resources/assets/anvilcraft/models/item/bronze_block.json deleted file mode 100644 index bb350de3be..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/bronze_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/bronze_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/bronze_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/bronze_pressure_plate.json deleted file mode 100644 index b4a8037161..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/bronze_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/bronze_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/brown_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/brown_cement_bucket.json deleted file mode 100644 index b2327e4a6c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/brown_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:brown_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cake_base_block.json b/src/generated/resources/assets/anvilcraft/models/item/cake_base_block.json deleted file mode 100644 index c4f8ff5c31..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cake_base_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cake_base_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cake_block.json b/src/generated/resources/assets/anvilcraft/models/item/cake_block.json deleted file mode 100644 index 9a73912f14..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cake_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cake_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil.json b/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil.json deleted file mode 100644 index 76dd45d72e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/celestial_forging_anvil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_amplifier.json b/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_amplifier.json deleted file mode 100644 index 361f089c3e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_amplifier.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/celestial_forging_anvil_amplifier" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_fluid_interface.json b/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_fluid_interface.json deleted file mode 100644 index 3bfc304fe9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_fluid_interface.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/celestial_forging_anvil_fluid_interface" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_laser_interface.json b/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_laser_interface.json deleted file mode 100644 index 2f84e1dadf..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_laser_interface.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/celestial_forging_anvil_laser_interface" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_logistics_interface.json b/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_logistics_interface.json deleted file mode 100644 index 76878d0f52..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/celestial_forging_anvil_logistics_interface.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/celestial_forging_anvil_logistics_interface" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/charge_collector.json b/src/generated/resources/assets/anvilcraft/models/item/charge_collector.json deleted file mode 100644 index 2cdb6b3e71..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/charge_collector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/charge_collector" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/charger.json b/src/generated/resources/assets/anvilcraft/models/item/charger.json deleted file mode 100644 index dbae62170f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/charger.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/charger" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chocolate_block.json b/src/generated/resources/assets/anvilcraft/models/item/chocolate_block.json deleted file mode 100644 index 77560eeca9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/chocolate_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/chocolate_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chocolate_cake_block.json b/src/generated/resources/assets/anvilcraft/models/item/chocolate_cake_block.json deleted file mode 100644 index 0ece997227..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/chocolate_cake_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/chocolate_cake_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chocolate_cream_block.json b/src/generated/resources/assets/anvilcraft/models/item/chocolate_cream_block.json deleted file mode 100644 index bd85aa3c7d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/chocolate_cream_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/chocolate_cream_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chocolate_slab.json b/src/generated/resources/assets/anvilcraft/models/item/chocolate_slab.json deleted file mode 100644 index bd1a3764a9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/chocolate_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/chocolate_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chocolate_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/chocolate_stairs.json deleted file mode 100644 index c63e8f8474..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/chocolate_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/chocolate_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chromatic_stone.json b/src/generated/resources/assets/anvilcraft/models/item/chromatic_stone.json deleted file mode 100644 index 531b868b2e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/chromatic_stone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/chromatic_stone" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chute.json b/src/generated/resources/assets/anvilcraft/models/item/chute.json deleted file mode 100644 index 3f17c9550f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/chute.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/chute" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cinerite.json b/src/generated/resources/assets/anvilcraft/models/item/cinerite.json deleted file mode 100644 index 3df3e3f1c6..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cinerite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cinerite" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/confined_energy_anvilon.json b/src/generated/resources/assets/anvilcraft/models/item/confined_energy_anvilon.json deleted file mode 100644 index fe3e6a525e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/confined_energy_anvilon.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/confined_energy_anvilon" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/confined_mass_anvilon.json b/src/generated/resources/assets/anvilcraft/models/item/confined_mass_anvilon.json deleted file mode 100644 index 9d4daa23ad..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/confined_mass_anvilon.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/confined_mass_anvilon" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/confined_neutronium_ingot.json b/src/generated/resources/assets/anvilcraft/models/item/confined_neutronium_ingot.json deleted file mode 100644 index e327c7594a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/confined_neutronium_ingot.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/confined_neutronium_ingot" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/confined_space_anvilon.json b/src/generated/resources/assets/anvilcraft/models/item/confined_space_anvilon.json deleted file mode 100644 index 4ce260d1db..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/confined_space_anvilon.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/confined_space_anvilon" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/confined_time_anvilon.json b/src/generated/resources/assets/anvilcraft/models/item/confined_time_anvilon.json deleted file mode 100644 index 1a5a8bf5e9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/confined_time_anvilon.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/confined_time_anvilon" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/confinement_chamber.json b/src/generated/resources/assets/anvilcraft/models/item/confinement_chamber.json deleted file mode 100644 index 4fb0a33aa3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/confinement_chamber.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/confinement_chamber" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/controllable_sand.json b/src/generated/resources/assets/anvilcraft/models/item/controllable_sand.json deleted file mode 100644 index d1f1c10f4e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/controllable_sand.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/controllable_sand" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/copper_pressure_plate.json deleted file mode 100644 index a8352b7a65..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/copper_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/copper_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/corrupted_beacon.json b/src/generated/resources/assets/anvilcraft/models/item/corrupted_beacon.json deleted file mode 100644 index 401727fc8e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/corrupted_beacon.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/corrupted_beacon" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/crab_trap.json b/src/generated/resources/assets/anvilcraft/models/item/crab_trap.json deleted file mode 100644 index fff782761e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/crab_trap.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/crab_trap" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cream_block.json b/src/generated/resources/assets/anvilcraft/models/item/cream_block.json deleted file mode 100644 index 528ccce8b5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cream_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cream_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/crushing_table.json b/src/generated/resources/assets/anvilcraft/models/item/crushing_table.json deleted file mode 100644 index 539c372603..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/crushing_table.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/crushing_table" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cursed_gold_block.json b/src/generated/resources/assets/anvilcraft/models/item/cursed_gold_block.json deleted file mode 100644 index fc15489670..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cursed_gold_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cursed_gold_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_block.json b/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_block.json deleted file mode 100644 index d0b25b151d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_ember_metal_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_pillar.json b/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_pillar.json deleted file mode 100644 index daf9f9ea00..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_ember_metal_pillar" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_slab.json b/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_slab.json deleted file mode 100644 index ea1beac5be..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_ember_metal_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_stairs.json deleted file mode 100644 index a798dc439b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_ember_metal_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_ember_metal_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_block.json b/src/generated/resources/assets/anvilcraft/models/item/cut_flint_block.json deleted file mode 100644 index 90c93708f3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_flint_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_pillar.json b/src/generated/resources/assets/anvilcraft/models/item/cut_flint_pillar.json deleted file mode 100644 index df14fbbbcc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_flint_pillar" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_slab.json b/src/generated/resources/assets/anvilcraft/models/item/cut_flint_slab.json deleted file mode 100644 index ca4c66f33b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_flint_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/cut_flint_stairs.json deleted file mode 100644 index dd84433d64..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_flint_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_flint_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_block.json b/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_block.json deleted file mode 100644 index 2f82054388..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_frost_metal_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_pillar.json b/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_pillar.json deleted file mode 100644 index 852945364a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_frost_metal_pillar" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_slab.json b/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_slab.json deleted file mode 100644 index 80241036b1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_frost_metal_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_stairs.json deleted file mode 100644 index 1f9eb373b3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_frost_metal_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_frost_metal_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_block.json b/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_block.json deleted file mode 100644 index 62102c02ed..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_heavy_iron_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_slab.json b/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_slab.json deleted file mode 100644 index 45e3667c4b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_heavy_iron_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_stairs.json deleted file mode 100644 index 71f6042f8d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_heavy_iron_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_heavy_iron_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_block.json b/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_block.json deleted file mode 100644 index 9ed54ea124..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_royal_steel_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_pillar.json b/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_pillar.json deleted file mode 100644 index 6f6186ec1e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_pillar.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_royal_steel_pillar" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_slab.json b/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_slab.json deleted file mode 100644 index b93d4b6ce3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_royal_steel_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_stairs.json deleted file mode 100644 index 73ee60d649..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cut_royal_steel_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/cut_royal_steel_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/cyan_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/cyan_cement_bucket.json deleted file mode 100644 index 27e1acb18a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/cyan_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:cyan_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deepslate_lead_ore.json b/src/generated/resources/assets/anvilcraft/models/item/deepslate_lead_ore.json deleted file mode 100644 index 73baa68821..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deepslate_lead_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deepslate_lead_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deepslate_silver_ore.json b/src/generated/resources/assets/anvilcraft/models/item/deepslate_silver_ore.json deleted file mode 100644 index 9db8ae946c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deepslate_silver_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deepslate_silver_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deepslate_tin_ore.json b/src/generated/resources/assets/anvilcraft/models/item/deepslate_tin_ore.json deleted file mode 100644 index 633779d37b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deepslate_tin_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deepslate_tin_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deepslate_titanium_ore.json b/src/generated/resources/assets/anvilcraft/models/item/deepslate_titanium_ore.json deleted file mode 100644 index be1c2f1636..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deepslate_titanium_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deepslate_titanium_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deepslate_tungsten_ore.json b/src/generated/resources/assets/anvilcraft/models/item/deepslate_tungsten_ore.json deleted file mode 100644 index da4c5dfd6b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deepslate_tungsten_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deepslate_tungsten_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deepslate_uranium_ore.json b/src/generated/resources/assets/anvilcraft/models/item/deepslate_uranium_ore.json deleted file mode 100644 index 8a2dbf84dc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deepslate_uranium_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deepslate_uranium_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deepslate_zinc_ore.json b/src/generated/resources/assets/anvilcraft/models/item/deepslate_zinc_ore.json deleted file mode 100644 index 15e5c03ed9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deepslate_zinc_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deepslate_zinc_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/deflection_ring.json b/src/generated/resources/assets/anvilcraft/models/item/deflection_ring.json deleted file mode 100644 index c7645b2a6c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/deflection_ring.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/deflection_ring" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/detector_sliding_rail.json b/src/generated/resources/assets/anvilcraft/models/item/detector_sliding_rail.json deleted file mode 100644 index 9766200a81..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/detector_sliding_rail.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/detector_sliding_rail" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/discharger.json b/src/generated/resources/assets/anvilcraft/models/item/discharger.json deleted file mode 100644 index 97ed50132d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/discharger.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/discharger" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_block.json b/src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_block.json deleted file mode 100644 index 31bef7114e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/earth_core_shard_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_ore.json b/src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_ore.json deleted file mode 100644 index 5aef5258d0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/earth_core_shard_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/earth_core_shard_ore" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ember_anvil.json b/src/generated/resources/assets/anvilcraft/models/item/ember_anvil.json deleted file mode 100644 index 9215dccf21..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ember_anvil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ember_anvil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ember_glass.json b/src/generated/resources/assets/anvilcraft/models/item/ember_glass.json deleted file mode 100644 index befd553736..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ember_glass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ember_glass" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ember_grindstone.json b/src/generated/resources/assets/anvilcraft/models/item/ember_grindstone.json deleted file mode 100644 index 846716c425..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ember_grindstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ember_grindstone" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ember_metal_block.json b/src/generated/resources/assets/anvilcraft/models/item/ember_metal_block.json deleted file mode 100644 index 559381ee78..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ember_metal_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ember_metal_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ember_smithing_table.json b/src/generated/resources/assets/anvilcraft/models/item/ember_smithing_table.json deleted file mode 100644 index a4b74365cb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ember_smithing_table.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ember_smithing_table" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/end_dust.json b/src/generated/resources/assets/anvilcraft/models/item/end_dust.json deleted file mode 100644 index 2c7e4d476f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/end_dust.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/end_dust" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/exp_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/exp_bucket.json deleted file mode 100644 index a05a9b196d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/exp_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:exp_fluid", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/exp_gem_block.json b/src/generated/resources/assets/anvilcraft/models/item/exp_gem_block.json deleted file mode 100644 index 7669cba68b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/exp_gem_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/exp_gem_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/exposed_copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/exposed_copper_pressure_plate.json deleted file mode 100644 index 09a74e81f8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/exposed_copper_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/exposed_copper_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ferrite_core_magnet_block.json b/src/generated/resources/assets/anvilcraft/models/item/ferrite_core_magnet_block.json deleted file mode 100644 index 8c6a82741a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ferrite_core_magnet_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ferrite_core_magnet_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/fish_tank.json b/src/generated/resources/assets/anvilcraft/models/item/fish_tank.json deleted file mode 100644 index 6037e38296..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/fish_tank.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/fish_tank" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/flint_block.json b/src/generated/resources/assets/anvilcraft/models/item/flint_block.json deleted file mode 100644 index 27983e0038..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/flint_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/flint_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/fluid_tank.json b/src/generated/resources/assets/anvilcraft/models/item/fluid_tank.json deleted file mode 100644 index 0164d60411..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/fluid_tank.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/fluid_tank" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/frost_anvil.json b/src/generated/resources/assets/anvilcraft/models/item/frost_anvil.json deleted file mode 100644 index fcda6cbed9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/frost_anvil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/frost_anvil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/frost_glass.json b/src/generated/resources/assets/anvilcraft/models/item/frost_glass.json deleted file mode 100644 index 708f49acb7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/frost_glass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/frost_glass" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/frost_grindstone.json b/src/generated/resources/assets/anvilcraft/models/item/frost_grindstone.json deleted file mode 100644 index 80ea63483d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/frost_grindstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/frost_grindstone" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/frost_metal_block.json b/src/generated/resources/assets/anvilcraft/models/item/frost_metal_block.json deleted file mode 100644 index ce18205243..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/frost_metal_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/frost_metal_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/frost_smithing_table.json b/src/generated/resources/assets/anvilcraft/models/item/frost_smithing_table.json deleted file mode 100644 index c1607b9d8c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/frost_smithing_table.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/frost_smithing_table" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/giant_anvil.json b/src/generated/resources/assets/anvilcraft/models/item/giant_anvil.json deleted file mode 100644 index 0b7d58af51..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/giant_anvil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/giant_anvil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/glowing_netherite_block.json b/src/generated/resources/assets/anvilcraft/models/item/glowing_netherite_block.json deleted file mode 100644 index c00ca12707..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/glowing_netherite_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/glowing_netherite_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/glowing_tungsten_block.json b/src/generated/resources/assets/anvilcraft/models/item/glowing_tungsten_block.json deleted file mode 100644 index de752b956e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/glowing_tungsten_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/glowing_tungsten_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/gray_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/gray_cement_bucket.json deleted file mode 100644 index 8a2fc6352b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/gray_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:gray_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/green_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/green_cement_bucket.json deleted file mode 100644 index 574fc49170..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/green_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:green_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/gunpowder_block.json b/src/generated/resources/assets/anvilcraft/models/item/gunpowder_block.json deleted file mode 100644 index 1170d71324..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/gunpowder_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/gunpowder_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heat_collector.json b/src/generated/resources/assets/anvilcraft/models/item/heat_collector.json deleted file mode 100644 index f0684b5c82..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heat_collector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heat_collector" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heated_netherite_block.json b/src/generated/resources/assets/anvilcraft/models/item/heated_netherite_block.json deleted file mode 100644 index c817b41e3d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heated_netherite_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heated_netherite_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heated_tungsten_block.json b/src/generated/resources/assets/anvilcraft/models/item/heated_tungsten_block.json deleted file mode 100644 index 93ace82872..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heated_tungsten_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heated_tungsten_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heater.json b/src/generated/resources/assets/anvilcraft/models/item/heater.json deleted file mode 100644 index cd6191eee7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heater.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heater" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_block.json b/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_block.json deleted file mode 100644 index 88d8b8892e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heavy_iron_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_column.json b/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_column.json deleted file mode 100644 index 5358ef640e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_column.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heavy_iron_column" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_plate.json b/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_plate.json deleted file mode 100644 index 08ef1d196b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heavy_iron_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_trapdoor.json b/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_trapdoor.json deleted file mode 100644 index cb74077023..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_trapdoor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/heavy_iron_trapdoor_bottom" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_wall.json b/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_wall.json deleted file mode 100644 index 1de7e6a0eb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/heavy_iron_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/heavy_iron_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/hollow_magnet_block.json b/src/generated/resources/assets/anvilcraft/models/item/hollow_magnet_block.json deleted file mode 100644 index 5614fbbe3f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/hollow_magnet_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/hollow_magnet_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/impact_pile.json b/src/generated/resources/assets/anvilcraft/models/item/impact_pile.json deleted file mode 100644 index 5b2d4e2eef..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/impact_pile.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/impact_pile" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/incandescent_netherite_block.json b/src/generated/resources/assets/anvilcraft/models/item/incandescent_netherite_block.json deleted file mode 100644 index 8627a2cea9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/incandescent_netherite_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/incandescent_netherite_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/incandescent_tungsten_block.json b/src/generated/resources/assets/anvilcraft/models/item/incandescent_tungsten_block.json deleted file mode 100644 index 7716034b3d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/incandescent_tungsten_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/incandescent_tungsten_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/induction_light.json b/src/generated/resources/assets/anvilcraft/models/item/induction_light.json deleted file mode 100644 index d1a9e71c71..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/induction_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/induction_light" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ionocraft_backpack.json b/src/generated/resources/assets/anvilcraft/models/item/ionocraft_backpack.json deleted file mode 100644 index bbb03c78e9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ionocraft_backpack.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "overrides": [ - { - "model": "anvilcraft:item/ionocraft_backpack", - "predicate": { - "anvilcraft:flight_time": 0.0 - } - } - ], - "textures": { - "layer0": "anvilcraft:item/ionocraft_backpack" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/item_collector.json b/src/generated/resources/assets/anvilcraft/models/item/item_collector.json deleted file mode 100644 index 0f0301ebee..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/item_collector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/item_collector" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/item_detector.json b/src/generated/resources/assets/anvilcraft/models/item/item_detector.json deleted file mode 100644 index f304b209f5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/item_detector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/item_detector" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/jewelcrafting_table.json b/src/generated/resources/assets/anvilcraft/models/item/jewelcrafting_table.json deleted file mode 100644 index 62d11dacde..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/jewelcrafting_table.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/jewelcrafting_table" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/large_cake.json b/src/generated/resources/assets/anvilcraft/models/item/large_cake.json deleted file mode 100644 index 5fb6b28d15..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/large_cake.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/large_cake" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/large_fluid_tank.json b/src/generated/resources/assets/anvilcraft/models/item/large_fluid_tank.json deleted file mode 100644 index 8b327a33ab..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/large_fluid_tank.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/large_fluid_tank" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/laser_receiver.json b/src/generated/resources/assets/anvilcraft/models/item/laser_receiver.json deleted file mode 100644 index 16aa193d09..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/laser_receiver.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/laser_receiver" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/lead_block.json b/src/generated/resources/assets/anvilcraft/models/item/lead_block.json deleted file mode 100644 index f6a3b9a44e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/lead_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/lead_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/lead_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/lead_pressure_plate.json deleted file mode 100644 index c454ea0e0e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/lead_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/lead_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/levitation_powder_block.json b/src/generated/resources/assets/anvilcraft/models/item/levitation_powder_block.json deleted file mode 100644 index 1a0a2899dc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/levitation_powder_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/levitation_powder_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/light_blue_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/light_blue_cement_bucket.json deleted file mode 100644 index 23d86ac8b1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/light_blue_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:light_blue_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/light_gray_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/light_gray_cement_bucket.json deleted file mode 100644 index a38b2aebb4..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/light_gray_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:light_gray_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/lime_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/lime_cement_bucket.json deleted file mode 100644 index a2796572e7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/lime_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:lime_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/load_monitor.json b/src/generated/resources/assets/anvilcraft/models/item/load_monitor.json deleted file mode 100644 index 9bab8ea2c8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/load_monitor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/load_monitor_0" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/magenta_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/magenta_cement_bucket.json deleted file mode 100644 index ce3f931e6d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/magenta_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:magenta_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/magnet_block.json b/src/generated/resources/assets/anvilcraft/models/item/magnet_block.json deleted file mode 100644 index 38b6c856d3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/magnet_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/magnet_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/magnetic_chute.json b/src/generated/resources/assets/anvilcraft/models/item/magnetic_chute.json deleted file mode 100644 index d393e28885..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/magnetic_chute.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/magnetic_chute" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/magnetoelectric_core.json b/src/generated/resources/assets/anvilcraft/models/item/magnetoelectric_core.json deleted file mode 100644 index a898ea403c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/magnetoelectric_core.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/magnetoelectric_core" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/melt_gem_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/melt_gem_bucket.json deleted file mode 100644 index e3f5b71b01..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/melt_gem_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:melt_gem", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/menger_sponge.json b/src/generated/resources/assets/anvilcraft/models/item/menger_sponge.json deleted file mode 100644 index 52febdce81..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/menger_sponge.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/menger_sponge" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/mineral_fountain.json b/src/generated/resources/assets/anvilcraft/models/item/mineral_fountain.json deleted file mode 100644 index 2371cba5e5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/mineral_fountain.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/mineral_fountain" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/mob_amber_block.json b/src/generated/resources/assets/anvilcraft/models/item/mob_amber_block.json deleted file mode 100644 index 71a10ecf5f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/mob_amber_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/mob_amber_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/multiphase_matter_block.json b/src/generated/resources/assets/anvilcraft/models/item/multiphase_matter_block.json deleted file mode 100644 index b5db4d772b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/multiphase_matter_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/multiphase_matter_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/negative_matter_block.json b/src/generated/resources/assets/anvilcraft/models/item/negative_matter_block.json deleted file mode 100644 index c1ab2ff9a1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/negative_matter_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/negative_matter_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/neoforge.json b/src/generated/resources/assets/anvilcraft/models/item/neoforge.json deleted file mode 100644 index 9cfe1c512a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/neoforge.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/neoforge" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/nesting_shulker_box.json b/src/generated/resources/assets/anvilcraft/models/item/nesting_shulker_box.json deleted file mode 100644 index 3e1fdd4855..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/nesting_shulker_box.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/nesting_shulker_box" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/nether_dust.json b/src/generated/resources/assets/anvilcraft/models/item/nether_dust.json deleted file mode 100644 index c18cc2e2f1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/nether_dust.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/nether_dust" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/neutron_irradiator.json b/src/generated/resources/assets/anvilcraft/models/item/neutron_irradiator.json deleted file mode 100644 index 9d1190b44c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/neutron_irradiator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/neutron_irradiator" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/oil_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/oil_bucket.json deleted file mode 100644 index 01c0026594..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/oil_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:oil", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/orange_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/orange_cement_bucket.json deleted file mode 100644 index 5fc3bd67a1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/orange_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:orange_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/over_nesting_shulker_box.json b/src/generated/resources/assets/anvilcraft/models/item/over_nesting_shulker_box.json deleted file mode 100644 index 3b6e219d00..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/over_nesting_shulker_box.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/over_nesting_shulker_box" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/overheated_ember_metal_block.json b/src/generated/resources/assets/anvilcraft/models/item/overheated_ember_metal_block.json deleted file mode 100644 index e272111cc2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/overheated_ember_metal_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/overheated_ember_metal_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/oxidized_copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/oxidized_copper_pressure_plate.json deleted file mode 100644 index d6767e15eb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/oxidized_copper_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/oxidized_copper_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/piezoelectric_crystal.json b/src/generated/resources/assets/anvilcraft/models/item/piezoelectric_crystal.json deleted file mode 100644 index 6d93fee9d1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/piezoelectric_crystal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/piezoelectric_crystal" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/pink_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/pink_cement_bucket.json deleted file mode 100644 index dae7edacba..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/pink_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:pink_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/plutonium_block.json b/src/generated/resources/assets/anvilcraft/models/item/plutonium_block.json deleted file mode 100644 index 4c8ee72e1c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/plutonium_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/plutonium_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/plutonium_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/plutonium_pressure_plate.json deleted file mode 100644 index 3a825f34ba..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/plutonium_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/plutonium_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/polished_flint_block.json b/src/generated/resources/assets/anvilcraft/models/item/polished_flint_block.json deleted file mode 100644 index 02d7f64d8d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/polished_flint_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/polished_flint_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_block.json b/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_block.json deleted file mode 100644 index fd6a184ba0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/polished_heavy_iron_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_slab.json b/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_slab.json deleted file mode 100644 index 54ebc29cd5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/polished_heavy_iron_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_stairs.json deleted file mode 100644 index 2c25671bbe..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/polished_heavy_iron_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/polished_heavy_iron_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/power_converter_big.json b/src/generated/resources/assets/anvilcraft/models/item/power_converter_big.json deleted file mode 100644 index 44c5abf63e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/power_converter_big.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/power_converter_big" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/power_converter_middle.json b/src/generated/resources/assets/anvilcraft/models/item/power_converter_middle.json deleted file mode 100644 index b7860174a5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/power_converter_middle.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/power_converter_middle" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/power_converter_small.json b/src/generated/resources/assets/anvilcraft/models/item/power_converter_small.json deleted file mode 100644 index b67a16dc42..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/power_converter_small.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/power_converter_small" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/powered_sliding_rail.json b/src/generated/resources/assets/anvilcraft/models/item/powered_sliding_rail.json deleted file mode 100644 index 50bbf0c107..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/powered_sliding_rail.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/powered_sliding_rail" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/propel_piston.json b/src/generated/resources/assets/anvilcraft/models/item/propel_piston.json deleted file mode 100644 index 621d7ae844..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/propel_piston.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/propel_piston" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/pulse_generator.json b/src/generated/resources/assets/anvilcraft/models/item/pulse_generator.json deleted file mode 100644 index 7421cf2fdf..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/pulse_generator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/pulse_generator" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/purple_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/purple_cement_bucket.json deleted file mode 100644 index 89cdd28ae5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/purple_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:purple_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/quartz_sand.json b/src/generated/resources/assets/anvilcraft/models/item/quartz_sand.json deleted file mode 100644 index d77bc598b5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/quartz_sand.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/quartz_sand" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/raw_lead_block.json b/src/generated/resources/assets/anvilcraft/models/item/raw_lead_block.json deleted file mode 100644 index 718a62a827..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/raw_lead_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/raw_lead_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/raw_silver_block.json b/src/generated/resources/assets/anvilcraft/models/item/raw_silver_block.json deleted file mode 100644 index d0347a19a5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/raw_silver_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/raw_silver_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/raw_tin_block.json b/src/generated/resources/assets/anvilcraft/models/item/raw_tin_block.json deleted file mode 100644 index 78368640a3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/raw_tin_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/raw_tin_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/raw_titanium_block.json b/src/generated/resources/assets/anvilcraft/models/item/raw_titanium_block.json deleted file mode 100644 index b64ca6c515..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/raw_titanium_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/raw_titanium_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/raw_tungsten_block.json b/src/generated/resources/assets/anvilcraft/models/item/raw_tungsten_block.json deleted file mode 100644 index bd00562c26..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/raw_tungsten_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/raw_tungsten_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/raw_uranium_block.json b/src/generated/resources/assets/anvilcraft/models/item/raw_uranium_block.json deleted file mode 100644 index 3ee581f767..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/raw_uranium_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/raw_uranium_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/raw_zinc_block.json b/src/generated/resources/assets/anvilcraft/models/item/raw_zinc_block.json deleted file mode 100644 index b2e7851251..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/raw_zinc_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/raw_zinc_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/red_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/red_cement_bucket.json deleted file mode 100644 index 61369e79f1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/red_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:red_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/redhot_netherite_block.json b/src/generated/resources/assets/anvilcraft/models/item/redhot_netherite_block.json deleted file mode 100644 index 1ff84e9765..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/redhot_netherite_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/redhot_netherite_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/redhot_tungsten_block.json b/src/generated/resources/assets/anvilcraft/models/item/redhot_tungsten_block.json deleted file mode 100644 index a48af8774f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/redhot_tungsten_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/redhot_tungsten_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black.json deleted file mode 100644 index 1b112f6bc0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_black" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_slab.json deleted file mode 100644 index ce17f742b9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_black_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_stair.json deleted file mode 100644 index 8d44a215b2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_black_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_wall.json deleted file mode 100644 index bfcef089d1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_black_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_black_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue.json deleted file mode 100644 index a1ec28618d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_blue" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_slab.json deleted file mode 100644 index 255486eae8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_blue_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_stair.json deleted file mode 100644 index be5667adb9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_blue_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_wall.json deleted file mode 100644 index 174ffe03e8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_blue_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown.json deleted file mode 100644 index df75382af7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_brown" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_slab.json deleted file mode 100644 index 33c5d1496d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_brown_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_stair.json deleted file mode 100644 index 74dba9dc2d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_brown_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_wall.json deleted file mode 100644 index 6185e341ee..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_brown_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_brown_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan.json deleted file mode 100644 index 6d2f156312..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_cyan" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_slab.json deleted file mode 100644 index 66f20c7ba7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_cyan_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_stair.json deleted file mode 100644 index 208742f6e9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_cyan_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_wall.json deleted file mode 100644 index 60b25181d7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_cyan_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_cyan_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray.json deleted file mode 100644 index e3a30b6f19..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_gray" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_slab.json deleted file mode 100644 index 5fed3390d7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_gray_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_stair.json deleted file mode 100644 index bb86fe6264..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_gray_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_wall.json deleted file mode 100644 index af08e5f2f7..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_gray_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green.json deleted file mode 100644 index e28747b929..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_green" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_slab.json deleted file mode 100644 index afc152c1f8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_green_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_stair.json deleted file mode 100644 index 80c6123ba2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_green_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_wall.json deleted file mode 100644 index 4da387dea5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_green_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_green_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue.json deleted file mode 100644 index dba684c5a6..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_light_blue" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index 3033870d71..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_light_blue_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index f1f7702f3a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_light_blue_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_wall.json deleted file mode 100644 index c1225756d9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_blue_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray.json deleted file mode 100644 index 1d312729ff..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_light_gray" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index 29bcb17c8e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_light_gray_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index 59f6a22299..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_light_gray_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_wall.json deleted file mode 100644 index 3116f6c0b6..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_light_gray_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_light_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime.json deleted file mode 100644 index 93e50b07ef..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_lime" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_slab.json deleted file mode 100644 index b87bd11061..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_lime_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_stair.json deleted file mode 100644 index f88e216c03..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_lime_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_wall.json deleted file mode 100644 index 66cff21346..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_lime_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_lime_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta.json deleted file mode 100644 index 61e491868f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_magenta" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_slab.json deleted file mode 100644 index 0d0d3e56f8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_magenta_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_stair.json deleted file mode 100644 index 67bced7aa1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_magenta_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_wall.json deleted file mode 100644 index 335cceb31f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_magenta_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_magenta_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange.json deleted file mode 100644 index 01aa9217f8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_orange" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_slab.json deleted file mode 100644 index a4f49d9222..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_orange_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_stair.json deleted file mode 100644 index 81a7c2c175..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_orange_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_wall.json deleted file mode 100644 index fd749bdd80..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_orange_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_orange_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink.json deleted file mode 100644 index beb4d5c77b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_pink" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_slab.json deleted file mode 100644 index 63b81528ab..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_pink_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_stair.json deleted file mode 100644 index 3e59f068d4..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_pink_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_wall.json deleted file mode 100644 index 7cf898beb9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_pink_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_pink_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple.json deleted file mode 100644 index 5fc18c527c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_purple" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_slab.json deleted file mode 100644 index 58a79823e0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_purple_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_stair.json deleted file mode 100644 index ab1c7241cf..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_purple_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_wall.json deleted file mode 100644 index af15186b77..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_purple_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_purple_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red.json deleted file mode 100644 index 34b5f80767..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_red" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_slab.json deleted file mode 100644 index 3ca62adc3d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_red_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_stair.json deleted file mode 100644 index a86b050950..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_red_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_wall.json deleted file mode 100644 index 171fced9b2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_red_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_red_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white.json deleted file mode 100644 index a45f9b0ceb..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_white" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_slab.json deleted file mode 100644 index cb90941130..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_white_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_stair.json deleted file mode 100644 index 50da49fc2a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_white_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_wall.json deleted file mode 100644 index d8f766a4d2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_white_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_white_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow.json deleted file mode 100644 index 82a36adb6e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_yellow" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_slab.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_slab.json deleted file mode 100644 index 1a3558862e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_yellow_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_stair.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_stair.json deleted file mode 100644 index 201fa17793..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/reinforced_concrete_yellow_stair" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_wall.json b/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_wall.json deleted file mode 100644 index 496fc7ff3b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/reinforced_concrete_yellow_wall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/wall_inventory", - "textures": { - "wall": "anvilcraft:block/reinforced_concrete_yellow_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/resentful_amber_block.json b/src/generated/resources/assets/anvilcraft/models/item/resentful_amber_block.json deleted file mode 100644 index bc7bb0a262..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/resentful_amber_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/resentful_amber_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/resin_block.json b/src/generated/resources/assets/anvilcraft/models/item/resin_block.json deleted file mode 100644 index 28045cf4b5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/resin_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/resin_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/rotten_flesh_block.json b/src/generated/resources/assets/anvilcraft/models/item/rotten_flesh_block.json deleted file mode 100644 index 8322d8eeea..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/rotten_flesh_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/rotten_flesh_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/royal_anvil.json b/src/generated/resources/assets/anvilcraft/models/item/royal_anvil.json deleted file mode 100644 index 8429b96a48..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/royal_anvil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/royal_anvil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/royal_grindstone.json b/src/generated/resources/assets/anvilcraft/models/item/royal_grindstone.json deleted file mode 100644 index e39282e7a2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/royal_grindstone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/royal_grindstone" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/royal_smithing_table.json b/src/generated/resources/assets/anvilcraft/models/item/royal_smithing_table.json deleted file mode 100644 index 685a535887..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/royal_smithing_table.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/royal_smithing_table" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/royal_steel_block.json b/src/generated/resources/assets/anvilcraft/models/item/royal_steel_block.json deleted file mode 100644 index 24fe177d29..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/royal_steel_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/royal_steel_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ruby_block.json b/src/generated/resources/assets/anvilcraft/models/item/ruby_block.json deleted file mode 100644 index 2d75124d37..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ruby_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ruby_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ruby_laser.json b/src/generated/resources/assets/anvilcraft/models/item/ruby_laser.json deleted file mode 100644 index d7ef5ec13e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ruby_laser.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ruby_laser" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/ruby_prism.json b/src/generated/resources/assets/anvilcraft/models/item/ruby_prism.json deleted file mode 100644 index d42a71d184..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/ruby_prism.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/ruby_prism" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/sapphire_block.json b/src/generated/resources/assets/anvilcraft/models/item/sapphire_block.json deleted file mode 100644 index 5ba298861c..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/sapphire_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/sapphire_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/shulker_container.json b/src/generated/resources/assets/anvilcraft/models/item/shulker_container.json deleted file mode 100644 index b30c85c88b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/shulker_container.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/shulker_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/silver_block.json b/src/generated/resources/assets/anvilcraft/models/item/silver_block.json deleted file mode 100644 index 5911266435..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/silver_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/silver_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/silver_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/silver_pressure_plate.json deleted file mode 100644 index 1afe6ee40e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/silver_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/silver_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/singularity_crystal.json b/src/generated/resources/assets/anvilcraft/models/item/singularity_crystal.json deleted file mode 100644 index 47f737a51e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/singularity_crystal.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/singularity_crystal" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/sliding_rail.json b/src/generated/resources/assets/anvilcraft/models/item/sliding_rail.json deleted file mode 100644 index 13afb4fc30..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/sliding_rail.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/sliding_rail" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/sliding_rail_stop.json b/src/generated/resources/assets/anvilcraft/models/item/sliding_rail_stop.json deleted file mode 100644 index 09d9c20f89..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/sliding_rail_stop.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/sliding_rail_stop" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/smooth_royal_steel_block.json b/src/generated/resources/assets/anvilcraft/models/item/smooth_royal_steel_block.json deleted file mode 100644 index ef98409388..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/smooth_royal_steel_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/smooth_royal_steel_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/space_overcompressor.json b/src/generated/resources/assets/anvilcraft/models/item/space_overcompressor.json deleted file mode 100644 index fde2ce8e96..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/space_overcompressor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/space_overcompressor" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/spectral_anvil.json b/src/generated/resources/assets/anvilcraft/models/item/spectral_anvil.json deleted file mode 100644 index 00e3eba589..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/spectral_anvil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/spectral_anvil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/spectral_weapon_launcher_off.json b/src/generated/resources/assets/anvilcraft/models/item/spectral_weapon_launcher_off.json new file mode 100644 index 0000000000..b0cd1a7d90 --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/models/item/spectral_weapon_launcher_off.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "anvilcraft:item/spectral_weapon_launcher_off" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/stamping_platform.json b/src/generated/resources/assets/anvilcraft/models/item/stamping_platform.json deleted file mode 100644 index 9bf2cc7495..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/stamping_platform.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/stamping_platform" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/structure_tool.json b/src/generated/resources/assets/anvilcraft/models/item/structure_tool.json deleted file mode 100644 index 5cfa9dd85f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/structure_tool.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "minecraft:item/paper" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/sturdy_deepslate.json b/src/generated/resources/assets/anvilcraft/models/item/sturdy_deepslate.json deleted file mode 100644 index cc47b19fcf..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/sturdy_deepslate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/sturdy_deepslate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/sugar_block.json b/src/generated/resources/assets/anvilcraft/models/item/sugar_block.json deleted file mode 100644 index 8c9d111785..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/sugar_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/sugar_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/supercritical_nesting_shulker_box.json b/src/generated/resources/assets/anvilcraft/models/item/supercritical_nesting_shulker_box.json deleted file mode 100644 index 258b2e526b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/supercritical_nesting_shulker_box.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/supercritical_nesting_shulker_box" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/tempering_glass.json b/src/generated/resources/assets/anvilcraft/models/item/tempering_glass.json deleted file mode 100644 index b5311be9dc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/tempering_glass.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/tempering_glass" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/tesla_tower.json b/src/generated/resources/assets/anvilcraft/models/item/tesla_tower.json deleted file mode 100644 index 70eb75ad80..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/tesla_tower.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/tesla_tower_overall" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/tin_block.json b/src/generated/resources/assets/anvilcraft/models/item/tin_block.json deleted file mode 100644 index 494eced225..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/tin_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/tin_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/tin_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/tin_pressure_plate.json deleted file mode 100644 index 98d57fc038..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/tin_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/tin_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/titanium_block.json b/src/generated/resources/assets/anvilcraft/models/item/titanium_block.json deleted file mode 100644 index 403f969352..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/titanium_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/titanium_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/titanium_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/titanium_pressure_plate.json deleted file mode 100644 index 49515323f5..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/titanium_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/titanium_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/topaz_block.json b/src/generated/resources/assets/anvilcraft/models/item/topaz_block.json deleted file mode 100644 index 0104e7e8cc..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/topaz_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/topaz_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/transcendence_anvil.json b/src/generated/resources/assets/anvilcraft/models/item/transcendence_anvil.json deleted file mode 100644 index 164977e811..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/transcendence_anvil.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/transcendence_anvil" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/transcendium_block.json b/src/generated/resources/assets/anvilcraft/models/item/transcendium_block.json deleted file mode 100644 index 974f3a35c0..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/transcendium_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/transcendium_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/transparent_crafting_table.json b/src/generated/resources/assets/anvilcraft/models/item/transparent_crafting_table.json deleted file mode 100644 index 5afa58eeee..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/transparent_crafting_table.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/transparent_crafting_table" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/tungsten_block.json b/src/generated/resources/assets/anvilcraft/models/item/tungsten_block.json deleted file mode 100644 index 8a58bac3d8..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/tungsten_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/tungsten_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/tungsten_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/tungsten_pressure_plate.json deleted file mode 100644 index 49ba89243e..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/tungsten_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/tungsten_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/uranium_block.json b/src/generated/resources/assets/anvilcraft/models/item/uranium_block.json deleted file mode 100644 index 1e2a18e95f..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/uranium_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/uranium_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/uranium_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/uranium_pressure_plate.json deleted file mode 100644 index 77d1aed082..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/uranium_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/uranium_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/void_energy_collector.json b/src/generated/resources/assets/anvilcraft/models/item/void_energy_collector.json deleted file mode 100644 index d80434b0a4..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/void_energy_collector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/void_energy_collector" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/void_matter_block.json b/src/generated/resources/assets/anvilcraft/models/item/void_matter_block.json deleted file mode 100644 index 2ceffc3bc9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/void_matter_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/void_matter_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/void_stone.json b/src/generated/resources/assets/anvilcraft/models/item/void_stone.json deleted file mode 100644 index a6028d4ce3..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/void_stone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/void_stone" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/weathered_copper_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/weathered_copper_pressure_plate.json deleted file mode 100644 index e276f3960a..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/weathered_copper_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/weathered_copper_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/white_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/white_cement_bucket.json deleted file mode 100644 index b816e5534b..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/white_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:white_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_block.json b/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_block.json deleted file mode 100644 index 2f4d581e95..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/white_chocolate_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_slab.json b/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_slab.json deleted file mode 100644 index bc3b8cbaf2..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/white_chocolate_slab" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_stairs.json b/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_stairs.json deleted file mode 100644 index e3231f1206..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/white_chocolate_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/white_chocolate_stairs" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/white_hole.json b/src/generated/resources/assets/anvilcraft/models/item/white_hole.json deleted file mode 100644 index ea8dbe166d..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/white_hole.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/white_hole" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/yellow_cement_bucket.json b/src/generated/resources/assets/anvilcraft/models/item/yellow_cement_bucket.json deleted file mode 100644 index b1b8e45bf9..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/yellow_cement_bucket.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "fluid": "anvilcraft:yellow_cement", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/zinc_block.json b/src/generated/resources/assets/anvilcraft/models/item/zinc_block.json deleted file mode 100644 index b709927fa1..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/zinc_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/zinc_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/zinc_pressure_plate.json b/src/generated/resources/assets/anvilcraft/models/item/zinc_pressure_plate.json deleted file mode 100644 index b41ba31d44..0000000000 --- a/src/generated/resources/assets/anvilcraft/models/item/zinc_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "anvilcraft:block/zinc_pressure_plate" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/4281.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/4281.json index ba2ef22d64..79e2eaa646 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/4281.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/4281.json @@ -19,7 +19,6 @@ "translate": "advancements.anvilcraft.four281.description" }, "icon": { - "count": 1, "id": "minecraft:blue_ice" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/all_in_one.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/all_in_one.json index fc39b5cac4..9557fa7a11 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/all_in_one.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/all_in_one.json @@ -52,7 +52,6 @@ "translate": "advancements.anvilcraft.all_in_one.description" }, "icon": { - "count": 1, "id": "anvilcraft:anvil_hammer" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/amethyst_pickaxe.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/amethyst_pickaxe.json index f1852802fb..c2f0781a96 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/amethyst_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/amethyst_pickaxe.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.amethyst_pickaxe.description" }, "icon": { - "count": 1, "id": "anvilcraft:amethyst_pickaxe" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvil_accelerator.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvil_accelerator.json index 14663ce1a7..ff02905eea 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvil_accelerator.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvil_accelerator.json @@ -27,7 +27,6 @@ "translate": "advancements.anvilcraft.anvil_accelerator.description" }, "icon": { - "count": 1, "id": "anvilcraft:acceleration_ring" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvilon.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvilon.json index 59ce1197c3..acd755e371 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvilon.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/anvilon.json @@ -44,7 +44,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:confined_space_anvilon" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_devourer.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_devourer.json index 99d5e1be9d..3fc45356a9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_devourer.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_devourer.json @@ -16,7 +16,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:block_devourer" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_placer.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_placer.json index d66ec796c5..26d1fba52f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_placer.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/block_placer.json @@ -15,7 +15,6 @@ "translate": "advancements.anvilcraft.placer.description" }, "icon": { - "count": 1, "id": "anvilcraft:block_placer" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/crab_claw.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/crab_claw.json index 2c15c03475..fa89d9f040 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/crab_claw.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/crab_claw.json @@ -17,7 +17,6 @@ "translate": "advancements.anvilcraft.crab_claw.description" }, "icon": { - "count": 1, "id": "anvilcraft:crab_claw" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/dang.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/dang.json index 286ca590bb..16a815758a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/dang.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/dang.json @@ -11,7 +11,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "minecraft:anvil" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/durable_goods.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/durable_goods.json index 54b31412c1..01971828cf 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/durable_goods.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/durable_goods.json @@ -37,7 +37,6 @@ "translate": "advancements.anvilcraft.durable_goods.description" }, "icon": { - "count": 1, "id": "anvilcraft:royal_steel_pickaxe" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/electric_filed_rhythm.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/electric_filed_rhythm.json index 58929740fc..319b70dbe4 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/electric_filed_rhythm.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/electric_filed_rhythm.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.electric_filed_rhythm.description" }, "icon": { - "count": 1, "id": "anvilcraft:anvil_hammer" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/for_aeons.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/for_aeons.json index e7b22cabc7..037dad395b 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/for_aeons.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/for_aeons.json @@ -67,7 +67,6 @@ "translate": "advancements.anvilcraft.for_aeons.description" }, "icon": { - "count": 1, "id": "anvilcraft:oil_bucket" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/forged_over_eons.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/forged_over_eons.json index 9c42eea6a8..c72724fdeb 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/forged_over_eons.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/forged_over_eons.json @@ -38,7 +38,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "anvilcraft:ember_metal_ingot" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/fossick.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/fossick.json index 6178ae66b2..e761420f45 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/fossick.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/fossick.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.fossick.description" }, "icon": { - "count": 1, "id": "minecraft:gold_nugget" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/frost_metal.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/frost_metal.json index 86855718f6..83c8d65afa 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/frost_metal.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/frost_metal.json @@ -37,7 +37,6 @@ "translate": "advancements.anvilcraft.frost_metal.description" }, "icon": { - "count": 1, "id": "anvilcraft:frost_metal_ingot" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/gem_transform.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/gem_transform.json index e49130e61e..dc9e9ff14f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/gem_transform.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/gem_transform.json @@ -31,7 +31,6 @@ "translate": "advancements.anvilcraft.gem_transform.description" }, "icon": { - "count": 1, "id": "anvilcraft:ruby" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/geode.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/geode.json index c3a5102069..80364f45ef 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/geode.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/geode.json @@ -15,7 +15,6 @@ "translate": "advancements.anvilcraft.geode.description" }, "icon": { - "count": 1, "id": "anvilcraft:geode" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/giant_age.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/giant_age.json index 88737607c1..f5aeb50c27 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/giant_age.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/giant_age.json @@ -17,7 +17,6 @@ "translate": "advancements.anvilcraft.giant_age.description" }, "icon": { - "count": 1, "id": "anvilcraft:giant_anvil" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hammer.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hammer.json index f7df45ee63..50ec3d209f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hammer.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hammer.json @@ -120,7 +120,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:anvil_hammer" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hearts_of_iron.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hearts_of_iron.json index 41992cd5d4..3a0af98ea1 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hearts_of_iron.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/hearts_of_iron.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.hearts_of_iron.description" }, "icon": { - "count": 1, "id": "anvilcraft:magnetoelectric_core" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/heat_utilizing.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/heat_utilizing.json index 6f8f67627a..e08d6dcb78 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/heat_utilizing.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/heat_utilizing.json @@ -17,7 +17,6 @@ "translate": "advancements.anvilcraft.heat_utilizing.description" }, "icon": { - "count": 1, "id": "anvilcraft:heat_collector" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ice_maker.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ice_maker.json index 5812a3999a..a0e9b9ff70 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ice_maker.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ice_maker.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.ice_maker.description" }, "icon": { - "count": 1, "id": "minecraft:ice" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/industrial_grade_smelting.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/industrial_grade_smelting.json index 2ab20289a4..389c29500f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/industrial_grade_smelting.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/industrial_grade_smelting.json @@ -14,7 +14,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "anvilcraft:heater" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/iron_meter_reversal.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/iron_meter_reversal.json index c38ffbc725..2ad65910b3 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/iron_meter_reversal.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/iron_meter_reversal.json @@ -25,7 +25,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "minecraft:iron_block" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/isotope_decay_battery.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/isotope_decay_battery.json index 4ae6427e3a..4fb003c1e0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/isotope_decay_battery.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/isotope_decay_battery.json @@ -19,7 +19,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:uranium_block" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/laser.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/laser.json index acfc66da21..e5ae037853 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/laser.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/laser.json @@ -17,7 +17,6 @@ "translate": "advancements.anvilcraft.laser.description" }, "icon": { - "count": 1, "id": "anvilcraft:ruby_laser" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lifting_anvil.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lifting_anvil.json index 56ba71b446..d2b5e6cd64 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lifting_anvil.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lifting_anvil.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.lifting_anvil.description" }, "icon": { - "count": 1, "id": "anvilcraft:magnet_block" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lighter.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lighter.json index 42fcdd37d0..03e50157e5 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lighter.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/lighter.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.lighter.description" }, "icon": { - "count": 1, "id": "anvilcraft:piezoelectric_crystal" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/networking.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/networking.json index e0db5cad69..363f783b7d 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/networking.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/networking.json @@ -24,7 +24,6 @@ "translate": "advancements.anvilcraft.networking.description" }, "icon": { - "count": 1, "id": "anvilcraft:transmission_pole" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/new_matter.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/new_matter.json index ac72f45ee4..97ec817992 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/new_matter.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/new_matter.json @@ -26,7 +26,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "anvilcraft:multiphase_matter" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/noble_metal.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/noble_metal.json index 451290863d..9bd3204be4 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/noble_metal.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/noble_metal.json @@ -37,7 +37,6 @@ "translate": "advancements.anvilcraft.noble_metal.description" }, "icon": { - "count": 1, "id": "anvilcraft:royal_steel_ingot" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/not_beacon.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/not_beacon.json index a21254d674..0b401696eb 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/not_beacon.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/not_beacon.json @@ -24,7 +24,6 @@ "translate": "advancements.anvilcraft.not_beacon.description" }, "icon": { - "count": 1, "id": "anvilcraft:charge_collector" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/nuclear_power_10a.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/nuclear_power_10a.json index 70169a28bc..bb70c38470 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/nuclear_power_10a.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/nuclear_power_10a.json @@ -16,7 +16,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:heat_collector" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ore_point.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ore_point.json index 7138e2d2e1..44d89bde62 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ore_point.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/ore_point.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.ore_point.description" }, "icon": { - "count": 1, "id": "anvilcraft:mineral_fountain" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overheated.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overheated.json index 1249a34aea..57813f038e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overheated.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overheated.json @@ -20,7 +20,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "anvilcraft:overheated_ember_metal_block" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overseer.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overseer.json index e32fcd58b6..a1b67e7c8c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overseer.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/overseer.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.overseer.description" }, "icon": { - "count": 1, "id": "anvilcraft:overseer" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/real_looting.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/real_looting.json index ca37bdf39d..283b48d37c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/real_looting.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/real_looting.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.real_looting.description" }, "icon": { - "count": 1, "id": "minecraft:anvil" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/recycling_diamonds.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/recycling_diamonds.json index d556138406..54ce193c5d 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/recycling_diamonds.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/recycling_diamonds.json @@ -67,7 +67,6 @@ "translate": "advancements.anvilcraft.recycling_diamonds.description" }, "icon": { - "count": 1, "id": "minecraft:diamond" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/redstone_milker.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/redstone_milker.json index 70777d69b8..1cca1737a8 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/redstone_milker.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/redstone_milker.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.redstone_milker.description" }, "icon": { - "count": 1, "id": "minecraft:dispenser" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/rip_van_winkle.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/rip_van_winkle.json index a002020397..660ee756b0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/rip_van_winkle.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/rip_van_winkle.json @@ -14,7 +14,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "anvilcraft:corrupted_beacon" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/root.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/root.json index 7d924879e0..e32f06f55a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/root.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/root.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.root.description" }, "icon": { - "count": 1, "id": "anvilcraft:royal_anvil" }, "show_toast": false, diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/royal_blacksmith.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/royal_blacksmith.json index 68970976d3..ced85ffd7a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/royal_blacksmith.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/royal_blacksmith.json @@ -37,7 +37,6 @@ "translate": "advancements.anvilcraft.royal_blacksmith.description" }, "icon": { - "count": 1, "id": "anvilcraft:royal_anvil" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/self_in_flaming.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/self_in_flaming.json index d0ce46ef2a..fbb40b6b9e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/self_in_flaming.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/self_in_flaming.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.self_in_flaming.description" }, "icon": { - "count": 1, "id": "anvilcraft:ember_metal_pickaxe" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/smithing_table.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/smithing_table.json index a498faddb8..5f5b8872c0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/smithing_table.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/smithing_table.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.smithing_table.description" }, "icon": { - "count": 1, "id": "anvilcraft:royal_smithing_table" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/stone_crusher.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/stone_crusher.json index d3707c5003..6fdfdf8b8b 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/stone_crusher.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/stone_crusher.json @@ -19,7 +19,6 @@ "translate": "advancements.anvilcraft.stone_crusher.description" }, "icon": { - "count": 1, "id": "minecraft:sand" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_heat.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_heat.json index 9e3ca5267e..54c071ae82 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_heat.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_heat.json @@ -16,7 +16,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "anvilcraft:heat_collector" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_kill.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_kill.json index 7be0f40261..1bbd11275a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_kill.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/super_kill.json @@ -14,7 +14,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:royal_anvil_hammer" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/tai_shang_wang_qing.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/tai_shang_wang_qing.json index dc5881fb43..b960d98951 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/tai_shang_wang_qing.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/tai_shang_wang_qing.json @@ -34,7 +34,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:frost_metal_sword" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/topaz.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/topaz.json index 0596240f3e..7057ee6b98 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/topaz.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/topaz.json @@ -16,7 +16,6 @@ }, "frame": "goal", "icon": { - "count": 1, "id": "anvilcraft:topaz" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/transcendence.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/transcendence.json index 9c641627e8..912ed254be 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/transcendence.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/transcendence.json @@ -38,7 +38,6 @@ }, "frame": "challenge", "icon": { - "count": 1, "id": "anvilcraft:transcendium_block" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/vanilla_iron_plate.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/vanilla_iron_plate.json index 808bcff3d5..b604dcb3ab 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/vanilla_iron_plate.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/vanilla_iron_plate.json @@ -13,7 +13,6 @@ "translate": "advancements.anvilcraft.vanilla_iron_plate.description" }, "icon": { - "count": 1, "id": "minecraft:heavy_weighted_pressure_plate" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/wither.json b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/wither.json index 5a0900eda9..f8554a12e4 100644 --- a/src/generated/resources/data/anvilcraft/advancement/anvilcraft/wither.json +++ b/src/generated/resources/data/anvilcraft/advancement/anvilcraft/wither.json @@ -10,7 +10,6 @@ "translate": "advancements.anvilcraft.wither.description" }, "icon": { - "count": 1, "id": "anvilcraft:corrupted_beacon" }, "title": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_bars.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_bars.json new file mode 100644 index 0000000000..ae030b26f7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_bars.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_copper_bars" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_copper_bars" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chain.json new file mode 100644 index 0000000000..52203f1825 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_copper_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_copper_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chest.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chest.json new file mode 100644 index 0000000000..eeedb5fb74 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_chest.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_copper_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_copper_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_golem_statue.json new file mode 100644 index 0000000000..aa0c372cae --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_golem_statue.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_copper_golem_statue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_copper_golem_statue" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_lantern.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_lantern.json new file mode 100644 index 0000000000..82f0a84755 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_copper_lantern.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_copper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_copper_lantern" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_bars.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_bars.json new file mode 100644 index 0000000000..1737a74c27 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_bars.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_exposed_copper_bars" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_exposed_copper_bars" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chain.json new file mode 100644 index 0000000000..c28370a926 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_exposed_copper_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_exposed_copper_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chest.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chest.json new file mode 100644 index 0000000000..e4539182a4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_chest.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_exposed_copper_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_exposed_copper_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_golem_statue.json new file mode 100644 index 0000000000..c1c188ad6d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_golem_statue.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_exposed_copper_golem_statue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_exposed_copper_golem_statue" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_lantern.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_lantern.json new file mode 100644 index 0000000000..4c02bef45b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_copper_lantern.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_exposed_copper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_exposed_copper_lantern" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_lightning_rod.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_lightning_rod.json new file mode 100644 index 0000000000..c7bf7be884 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_exposed_lightning_rod.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_exposed_lightning_rod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_exposed_lightning_rod" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_lightning_rod.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_lightning_rod.json new file mode 100644 index 0000000000..a95a2aa9ad --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_lightning_rod.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_lightning_rod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_lightning_rod" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_bars.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_bars.json new file mode 100644 index 0000000000..6d3420df54 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_bars.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_oxidized_copper_bars" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_oxidized_copper_bars" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chain.json new file mode 100644 index 0000000000..f17e4bafc9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_oxidized_copper_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_oxidized_copper_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chest.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chest.json new file mode 100644 index 0000000000..2c5a5e1197 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_chest.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_oxidized_copper_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_oxidized_copper_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_golem_statue.json new file mode 100644 index 0000000000..fed7136658 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_golem_statue.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_oxidized_copper_golem_statue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_oxidized_copper_golem_statue" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_lantern.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_lantern.json new file mode 100644 index 0000000000..a927ec9e06 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_copper_lantern.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_oxidized_copper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_oxidized_copper_lantern" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_lightning_rod.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_lightning_rod.json new file mode 100644 index 0000000000..74126dbbc4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_oxidized_lightning_rod.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_oxidized_lightning_rod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_oxidized_lightning_rod" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_bars.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_bars.json new file mode 100644 index 0000000000..408920b3be --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_bars.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_weathered_copper_bars" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_weathered_copper_bars" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chain.json new file mode 100644 index 0000000000..0828c76c6f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_weathered_copper_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_weathered_copper_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chest.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chest.json new file mode 100644 index 0000000000..c08cf82fac --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_chest.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_weathered_copper_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_weathered_copper_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_golem_statue.json new file mode 100644 index 0000000000..70b51df86f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_golem_statue.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_weathered_copper_golem_statue" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_weathered_copper_golem_statue" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_lantern.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_lantern.json new file mode 100644 index 0000000000..c41d8987f8 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_copper_lantern.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_weathered_copper_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_weathered_copper_lantern" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_lightning_rod.json b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_lightning_rod.json new file mode 100644 index 0000000000..ed602f185e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/block_smear/waxed_weathered_lightning_rod.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:block_smear/waxed_weathered_lightning_rod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:block_smear/waxed_weathered_lightning_rod" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..8c8129013d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:black_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:black_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:black_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..07a8d25dac --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:black_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:black_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:black_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_wall.json new file mode 100644 index 0000000000..d55158d908 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:black_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:black_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:black_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..1bb12f400f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:blue_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:blue_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..f70d18bebe --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:blue_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:blue_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..9da076fca3 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/blue_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:blue_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:blue_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..c367402f3c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:brown_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:brown_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:brown_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8b41808613 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:brown_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:brown_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:brown_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_wall.json new file mode 100644 index 0000000000..32b3905f34 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/brown_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:brown_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:brown_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:brown_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/comparator.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/comparator.json index 75fc45aabc..3a09e097ad 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/comparator.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/comparator.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:comparator" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_hardend_resin": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:comparator" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_hardend_resin" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2f011e3b22 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:cyan_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:cyan_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:cyan_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..48f1164ced --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:cyan_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:cyan_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:cyan_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1121c0a503 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/cyan_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:cyan_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:cyan_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:cyan_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_block.json index 2fbf79f610..195c74f82d 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_from_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_from_flint_block.json index 70ea70e3fa..c42153cf31 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/flint_from_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:flint_from_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:flint_from_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..97ea28043d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:gray_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:gray_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..81e06abbdf --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:gray_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:gray_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..790f90c811 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gray_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:gray_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:gray_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..9211d0e339 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:green_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:green_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:green_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..d7691e6d39 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:green_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:green_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:green_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_wall.json new file mode 100644 index 0000000000..03a7e12ab0 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/green_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:green_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:green_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:green_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_block.json index d1280b4b34..9a3d9e4eec 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:gunpowder_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_gunpowder": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:gunpowder_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_gunpowder" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_from_gunpowder_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_from_gunpowder_block.json index 0cde7a9236..5623f30032 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_from_gunpowder_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/gunpowder_from_gunpowder_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:gunpowder_from_gunpowder_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_gunpowder_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:gunpowder_from_gunpowder_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_gunpowder_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/heavy_iron_block.json index 92976d4213..8880068487 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_storage_blocks/iron": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_storage_blocks/iron" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/iron_block_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/iron_block_from_heavy_iron_block.json index f6e1114a0a..0b7c3d5a89 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/iron_block_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/iron_block_from_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:iron_block_from_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:iron_block_from_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..33aefc75d3 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:light_blue_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:light_blue_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..ee228c14fc --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:light_blue_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:light_blue_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..f2876ceb24 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_blue_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:light_blue_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:light_blue_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..18111f83c1 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:light_gray_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:light_gray_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..864adb8e1c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:light_gray_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:light_gray_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..6f0dc90f41 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/light_gray_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:light_gray_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:light_gray_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..3fd745e5b5 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:lime_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:lime_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:lime_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..64dc5806dc --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:lime_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:lime_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:lime_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_wall.json new file mode 100644 index 0000000000..84643f25ca --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/lime_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:lime_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:lime_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:lime_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..601da80377 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:magenta_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magenta_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:magenta_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..982343d646 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:magenta_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magenta_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:magenta_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_wall.json new file mode 100644 index 0000000000..bd8f9afff9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/magenta_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:magenta_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magenta_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:magenta_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..4f6d705304 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:orange_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:orange_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:orange_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..2f4f2900ec --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:orange_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:orange_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:orange_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_wall.json new file mode 100644 index 0000000000..10fb371a62 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/orange_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:orange_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:orange_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:orange_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..64b1a84d4c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:pink_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:pink_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:pink_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..e1f3ca02ab --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:pink_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:pink_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:pink_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1f50804436 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/pink_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:pink_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:pink_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:pink_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..72647f5b3d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:purple_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:purple_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:purple_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..cc0fd3dbc3 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:purple_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:purple_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:purple_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_wall.json new file mode 100644 index 0000000000..916c4a6d5d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/purple_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:purple_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:purple_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:purple_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..0ef9ba543c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:red_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:red_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:red_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..d26b679f7a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:red_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:red_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:red_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_wall.json new file mode 100644 index 0000000000..395ab1a0cc --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/red_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:red_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:red_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:red_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_slab.json deleted file mode 100644 index 6816ed75be..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_black": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_black" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_black_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_black" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_black_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_stair.json deleted file mode 100644 index ba87e93757..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_black": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_black" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_black_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_black" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_black_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_wall.json deleted file mode 100644 index d4b66aca02..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_black_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_black": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_black" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_black_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_black" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_black_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_slab.json deleted file mode 100644 index f040515677..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_blue": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_blue_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_blue" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_blue_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_stair.json deleted file mode 100644 index 208e429a9d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_blue": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_blue_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_blue" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_blue_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_wall.json deleted file mode 100644 index 33c87e3215..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_blue_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_blue": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_blue_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_blue" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_blue_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_slab.json deleted file mode 100644 index e0a8d691bb..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_brown": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_brown" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_brown_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_brown" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_brown_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_stair.json deleted file mode 100644 index c1c181a278..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_brown": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_brown" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_brown_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_brown" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_brown_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_wall.json deleted file mode 100644 index 69e0a53a16..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_brown_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_brown": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_brown" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_brown_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_brown" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_brown_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_slab.json deleted file mode 100644 index 436c5fb6ae..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_cyan": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_cyan" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_cyan_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_cyan" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_cyan_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_stair.json deleted file mode 100644 index ce73e95bf5..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_cyan": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_cyan" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_cyan_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_cyan" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_cyan_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_wall.json deleted file mode 100644 index 0ab76e2a8b..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_cyan_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_cyan": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_cyan" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_cyan_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_cyan" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_cyan_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_slab.json deleted file mode 100644 index 17174080f4..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_gray": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_gray_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_gray" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_gray_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_stair.json deleted file mode 100644 index 432de4297c..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_gray": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_gray_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_gray" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_gray_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_wall.json deleted file mode 100644 index e1de1dfac1..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_gray_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_gray": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_gray_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_gray" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_gray_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_slab.json deleted file mode 100644 index 2b34ff6868..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_green": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_green" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_green_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_green" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_green_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_stair.json deleted file mode 100644 index cfe4488a7d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_green": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_green" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_green_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_green" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_green_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_wall.json deleted file mode 100644 index 75ef3e8229..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_green_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_green": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_green" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_green_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_green" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_green_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index b7c18de0fa..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_light_blue": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_light_blue_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_light_blue" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_light_blue_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index 02c17b9c1c..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_light_blue": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_light_blue_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_light_blue" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_light_blue_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_wall.json deleted file mode 100644 index 82777892f4..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_blue_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_light_blue": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_light_blue_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_light_blue" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_light_blue_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index 211baab8eb..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_light_gray": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_light_gray_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_light_gray" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_light_gray_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index 4235374d83..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_light_gray": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_light_gray_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_light_gray" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_light_gray_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_wall.json deleted file mode 100644 index cdc22790ce..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_light_gray_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_light_gray": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_light_gray_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_light_gray" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_light_gray_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_slab.json deleted file mode 100644 index 6c3f76ed94..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_lime": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_lime" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_lime_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_lime" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_lime_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_stair.json deleted file mode 100644 index a625eb49ba..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_lime": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_lime" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_lime_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_lime" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_lime_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_wall.json deleted file mode 100644 index 25442584e4..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_lime_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_lime": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_lime" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_lime_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_lime" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_lime_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_slab.json deleted file mode 100644 index 29360d042e..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_magenta": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_magenta" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_magenta_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_magenta" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_magenta_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_stair.json deleted file mode 100644 index f189a1c54d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_magenta": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_magenta" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_magenta_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_magenta" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_magenta_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_wall.json deleted file mode 100644 index e2d69a1f64..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_magenta_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_magenta": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_magenta" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_magenta_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_magenta" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_magenta_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_slab.json deleted file mode 100644 index 70482106d5..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_orange": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_orange" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_orange_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_orange" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_orange_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_stair.json deleted file mode 100644 index 0ad89db70e..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_orange": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_orange" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_orange_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_orange" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_orange_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_wall.json deleted file mode 100644 index 8cae966803..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_orange_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_orange": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_orange" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_orange_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_orange" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_orange_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_slab.json deleted file mode 100644 index 681059c85f..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_pink": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_pink" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_pink_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_pink" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_pink_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_stair.json deleted file mode 100644 index 1c32ba15ea..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_pink": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_pink" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_pink_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_pink" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_pink_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_wall.json deleted file mode 100644 index ce23926b40..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_pink_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_pink": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_pink" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_pink_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_pink" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_pink_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_slab.json deleted file mode 100644 index 9ac2286e39..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_purple": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_purple" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_purple_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_purple" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_purple_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_stair.json deleted file mode 100644 index 4e4ec16c23..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_purple": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_purple" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_purple_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_purple" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_purple_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_wall.json deleted file mode 100644 index 2436e7f529..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_purple_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_purple": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_purple" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_purple_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_purple" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_purple_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_slab.json deleted file mode 100644 index 02be919b32..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_red": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_red" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_red_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_red" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_red_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_stair.json deleted file mode 100644 index 922ac21f49..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_red": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_red" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_red_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_red" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_red_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_wall.json deleted file mode 100644 index 39f04f5a34..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_red_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_red": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_red" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_red_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_red" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_red_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_slab.json deleted file mode 100644 index 23ee968844..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_white": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_white" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_white_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_white" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_white_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_stair.json deleted file mode 100644 index 90d700d903..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_white": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_white" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_white_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_white" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_white_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_wall.json deleted file mode 100644 index 58e92cf463..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_white_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_white": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_white" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_white_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_white" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_white_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_slab.json deleted file mode 100644 index b15cd6369b..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_yellow": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_yellow" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_yellow_slab" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_yellow" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_yellow_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_stair.json deleted file mode 100644 index 89bfb15a32..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_yellow": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_yellow" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_yellow_stair" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_yellow" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_yellow_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_wall.json deleted file mode 100644 index 1aa59ef7fd..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/reinforced_concrete_yellow_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_reinforced_concrete_yellow": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_yellow" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:reinforced_concrete_yellow_wall" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_reinforced_concrete_yellow" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:reinforced_concrete_yellow_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/repeater.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/repeater.json index cf0dab978d..d5fe34ad8a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/repeater.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/repeater.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:repeater" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_hardend_resin": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:repeater" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_hardend_resin" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_block.json index 89d1238c58..d83999dfc2 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:rotten_flesh_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_rotten_flesh": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:rotten_flesh_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_rotten_flesh" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_from_rotten_flesh_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_from_rotten_flesh_block.json index a5b378843f..72aa765e38 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_from_rotten_flesh_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/rotten_flesh_from_rotten_flesh_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:rotten_flesh_from_rotten_flesh_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_rotten_flesh_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:rotten_flesh_from_rotten_flesh_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_rotten_flesh_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/royal_steel_block.json index 0b2a4e6a0c..aa6d9d4adc 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_block.json index 0755987772..dc97348f13 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:shaped/cut_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:shaped/cut_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_pillar.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_pillar.json index cc09d166f7..8931464401 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_pillar.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_pillar.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:shaped/cut_flint_pillar" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:shaped/cut_flint_pillar" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_slab.json index 8333a8c29a..974fb75a3f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_slab.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_slab.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:shaped/cut_flint_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:shaped/cut_flint_slab" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_stairs.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_stairs.json index 43ad8ca85c..b7edbb7398 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_stairs.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/cut_flint_stairs.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:shaped/cut_flint_stairs" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:shaped/cut_flint_stairs" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/polished_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/polished_flint_block.json index dfa50c4b29..099fa39ccf 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/shaped/polished_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:shaped/polished_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:shaped/polished_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..6b30e81ae4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:black_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/black_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/black_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..915c5b032a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:black_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/black_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/black_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_wall.json new file mode 100644 index 0000000000..ceb6fb8191 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/black_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:black_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/black_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/black_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..7eff6f36fa --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/blue_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/blue_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..2c1944e3e9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/blue_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/blue_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..5a51f3a88e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/blue_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/blue_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/blue_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..aeb4d39e73 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:brown_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/brown_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/brown_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..edfa949989 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:brown_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/brown_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/brown_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_wall.json new file mode 100644 index 0000000000..90f36422b8 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/brown_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:brown_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/brown_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/brown_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_block.json index 2df0971e8e..ebe0789399 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_ember_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_ember_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json index 35832b4ca3..6ea07ec835 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json index c822b3083b..d5249af8a7 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_ember_metal_pillar_from_ember_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_ember_metal_pillar_from_ember_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json index c7b181e1ed..6f1ed5c508 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json index cb763e0995..60778030e0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_ember_metal_slab_from_ember_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_ember_metal_slab_from_ember_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json index 084bfc1865..48e55569ab 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json index 737122336c..398e0443fd 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_ember_metal_stairs_from_ember_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_ember_metal_stairs_from_ember_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_flint_block.json index d04043e248..0dce7b69ae 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_block_from_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_block_from_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_polished_flint_block.json index 1ac7b8f993..a7653536ff 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_block_from_polished_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_block_from_polished_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_block_from_polished_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_cut_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_cut_flint_block.json index 26dd73c3e7..a4473c82e4 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_cut_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_pillar_from_cut_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_pillar_from_cut_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_flint_block.json index 6029ea1356..23259cb507 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_pillar_from_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_pillar_from_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_polished_flint_block.json index ac7f6e6acf..f2e25ba117 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_pillar_from_polished_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_pillar_from_polished_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_pillar_from_polished_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_cut_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_cut_flint_block.json index 43b59fce72..d93f52b1bd 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_cut_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_slab_from_cut_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_slab_from_cut_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_flint_block.json index df6d35758d..f55c7ce0c9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_slab_from_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_slab_from_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_polished_flint_block.json index 4bdcdeb94a..85dc483072 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_slab_from_polished_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_slab_from_polished_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_slab_from_polished_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_cut_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_cut_flint_block.json index 63260d8fb4..c903384c79 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_cut_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_stairs_from_cut_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_stairs_from_cut_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_flint_block.json index c23d59c0d3..d0f6a1060d 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_stairs_from_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_stairs_from_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_polished_flint_block.json index 862527cfed..f1ed7e9728 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_flint_stairs_from_polished_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_flint_stairs_from_polished_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_flint_stairs_from_polished_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_block.json index 5746a7cab9..31ef44f17c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_frost_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_frost_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json index 8db0607c71..aac53cca8b 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json index 526f3b64bc..8acb5cc3f0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_frost_metal_pillar_from_frost_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_frost_metal_pillar_from_frost_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json index 6bf09ba5e2..62d29a9968 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json index cfbf8a343b..98b65643fb 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_frost_metal_slab_from_frost_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_frost_metal_slab_from_frost_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json index 4c1073e40e..f5492cae6a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json index cdb6cc0902..ef3afe27a7 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_frost_metal_stairs_from_frost_metal_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_frost_metal_stairs_from_frost_metal_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block.json index 11b8cd8115..6811da8258 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json index 76d98eb17f..584b277736 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json index 94704e394d..ca548be4e2 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json index 4f832d26bc..179c932830 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_slab_from_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_slab_from_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json index b10b8f231d..f10b9b0449 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json index b3679cbed4..5fed45f8fb 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json index 26202424fa..a756c24ee6 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json index 68891415ca..3355308ec4 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_block.json index eb2370faf7..bf3271cbca 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json index fdb7fc12ec..f65bcea775 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json index 4f5420d77f..6301187834 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_royal_steel_pillar_from_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_royal_steel_pillar_from_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json index be4dafd22d..f47ae0fef9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json index 3793cd78de..02fa1f4938 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_royal_steel_slab_from_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_royal_steel_slab_from_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json index 2e1c06c602..2b17c417a9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json index 29283ed97b..cf992d2b97 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/cut_royal_steel_stairs_from_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cut_royal_steel_stairs_from_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..07b301b578 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:cyan_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cyan_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/cyan_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..94ba70b0ab --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:cyan_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cyan_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/cyan_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_wall.json new file mode 100644 index 0000000000..37bdc6692a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/cyan_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:cyan_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/cyan_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/cyan_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..e9defd5eb2 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/gray_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/gray_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..9da0610966 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/gray_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/gray_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..79cbbee075 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/gray_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/gray_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/gray_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..dc9a398b34 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:green_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/green_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/green_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..1f2cba3f3e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:green_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/green_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/green_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_wall.json new file mode 100644 index 0000000000..44db25055f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/green_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:green_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/green_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/green_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam.json index 01c679295e..57cf166869 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_beam" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_beam" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json index b2296ba4a1..795eaa0ecc 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_beam_from_cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_beam_from_cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json index 39af86103a..9930d64438 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_beam_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_beam_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column.json index 707b684328..c6061a2658 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_column" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_column" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json index e85959a3a6..ac827c650d 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_column_from_cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_column_from_cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json index 1bde625679..242515fa36 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_column_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_column_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door.json index b0c51dbb58..d321546450 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_door" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_door" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json index bea0f77522..f5a00a3216 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_door_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_door_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate.json index 38bd4ca991..48f7ca5a15 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_plate" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_plate" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json index 5627c29ed5..a52bf2cf09 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json index 9aafa02bff..603cf44ceb 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_slab": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_slab" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json index 3af337e9d4..3ceed7a102 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json index ccfd74251c..ce4fb77a85 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_slab": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_slab" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor.json index 94f99c0d52..67f36a60ef 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_trapdoor" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json index 2b52282c94..f3b0d4a3d6 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json index 82178b8123..b170e0228f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall.json index 4ec4215170..b5e946df75 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_wall" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json index a47eb5e626..1cabbf2d32 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_wall_from_cut_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cut_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_wall_from_cut_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cut_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json index 4c33c35bcc..1d11aa2a44 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/heavy_iron_wall_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/heavy_iron_wall_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..30dc11f3ef --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/light_blue_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/light_blue_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..2d9f127a6b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/light_blue_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/light_blue_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..00d82c9fdb --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_blue_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_blue_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/light_blue_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/light_blue_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..61fdc9729d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/light_gray_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/light_gray_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8b22be26a9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/light_gray_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/light_gray_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..807b20155a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/light_gray_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:light_gray_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/light_gray_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/light_gray_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..fb5cb3f020 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:lime_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/lime_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/lime_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..153c2bc38e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:lime_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/lime_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/lime_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1946eac7b9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/lime_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:lime_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/lime_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/lime_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2e10a12a29 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:magenta_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/magenta_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/magenta_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..dd652c91f9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:magenta_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/magenta_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/magenta_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_wall.json new file mode 100644 index 0000000000..9145181b81 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/magenta_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:magenta_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/magenta_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/magenta_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..d31415ab6b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:orange_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/orange_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/orange_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..658210ad13 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:orange_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/orange_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/orange_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_wall.json new file mode 100644 index 0000000000..9770ee3b0b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/orange_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:orange_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/orange_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/orange_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..dc76afbc7a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:pink_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/pink_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/pink_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..76dddfd356 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:pink_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/pink_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/pink_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_wall.json new file mode 100644 index 0000000000..df9f9aa9c7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/pink_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:pink_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/pink_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/pink_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_flint_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_flint_block.json index 1845b19f63..84f55e693c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_flint_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/polished_flint_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_flint_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/polished_flint_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_flint_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_block.json index d3def44de5..8dfd9e347f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json index b6659cc63e..8f0e34e957 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/polished_heavy_iron_slab_from_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/polished_heavy_iron_slab_from_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json index 15ec042afc..e132e5e7bf 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json index e5270b7689..b080e5d470 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json index 93e49870d7..3ae820981a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_polished_heavy_iron_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_polished_heavy_iron_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..640bfdcfe9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:purple_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/purple_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/purple_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..fe265bbc7a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:purple_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/purple_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/purple_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_wall.json new file mode 100644 index 0000000000..7f6ac14c52 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/purple_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:purple_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/purple_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/purple_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..fdddb76033 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:red_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/red_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/red_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..4fec0c9d67 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:red_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/red_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/red_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_wall.json new file mode 100644 index 0000000000..410c3928e4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/red_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:red_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/red_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/red_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_slab.json deleted file mode 100644 index 8ef1a41b24..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_black_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_black" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_black_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_stair.json deleted file mode 100644 index 77285b2ff9..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_black_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_black" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_black_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_wall.json deleted file mode 100644 index 110f542ac4..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_black_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_black_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_black" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_black_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_slab.json deleted file mode 100644 index cf6a855b62..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_blue_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_blue_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_stair.json deleted file mode 100644 index 024b45fa61..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_blue_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_blue_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_wall.json deleted file mode 100644 index 3feac8e77d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_blue_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_blue_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_blue_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_slab.json deleted file mode 100644 index 5037993433..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_brown_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_brown" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_brown_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_stair.json deleted file mode 100644 index 63eecb4ea9..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_brown_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_brown" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_brown_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_wall.json deleted file mode 100644 index 6de46cf5c4..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_brown_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_brown_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_brown" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_brown_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_slab.json deleted file mode 100644 index 83557fac24..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_cyan_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_cyan" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_cyan_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_stair.json deleted file mode 100644 index c175caa73d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_cyan_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_cyan" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_cyan_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_wall.json deleted file mode 100644 index 0cf1f42ecd..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_cyan_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_cyan_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_cyan" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_cyan_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_slab.json deleted file mode 100644 index b75fc38a5d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_gray_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_gray_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_stair.json deleted file mode 100644 index 86e31b5c2a..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_gray_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_gray_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_wall.json deleted file mode 100644 index bff50b1691..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_gray_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_gray_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_gray_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_slab.json deleted file mode 100644 index df9680827e..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_green_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_green" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_green_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_stair.json deleted file mode 100644 index eed371cfc5..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_green_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_green" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_green_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_wall.json deleted file mode 100644 index 431c9b372e..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_green_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_green_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_green" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_green_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index 6379f29c4a..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_light_blue_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_light_blue_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index 1da1dcf599..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_light_blue_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_light_blue_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_wall.json deleted file mode 100644 index 6b45da2f2a..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_blue_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_light_blue_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_blue" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_light_blue_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index a8a736231d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_light_gray_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_light_gray_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index f258f55dad..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_light_gray_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_light_gray_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_wall.json deleted file mode 100644 index 590f4e805a..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_light_gray_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_light_gray_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_light_gray" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_light_gray_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_slab.json deleted file mode 100644 index 9fbfe11cfe..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_lime_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_lime" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_lime_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_stair.json deleted file mode 100644 index 4a0f419140..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_lime_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_lime" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_lime_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_wall.json deleted file mode 100644 index a5775d0586..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_lime_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_lime_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_lime" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_lime_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_slab.json deleted file mode 100644 index b2c293c62c..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_magenta_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_magenta" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_magenta_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_stair.json deleted file mode 100644 index a6bd979bf6..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_magenta_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_magenta" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_magenta_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_wall.json deleted file mode 100644 index bb20f37387..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_magenta_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_magenta_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_magenta" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_magenta_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_slab.json deleted file mode 100644 index 5de5198957..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_orange_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_orange" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_orange_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_stair.json deleted file mode 100644 index 1cebce5212..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_orange_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_orange" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_orange_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_wall.json deleted file mode 100644 index ca6ac567fa..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_orange_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_orange_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_orange" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_orange_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_slab.json deleted file mode 100644 index c650b8e11f..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_pink_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_pink" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_pink_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_stair.json deleted file mode 100644 index f2a5cd51c6..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_pink_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_pink" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_pink_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_wall.json deleted file mode 100644 index ba39162abe..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_pink_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_pink_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_pink" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_pink_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_slab.json deleted file mode 100644 index 17287b846d..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_purple_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_purple" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_purple_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_stair.json deleted file mode 100644 index 5176116183..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_purple_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_purple" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_purple_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_wall.json deleted file mode 100644 index 49718c5470..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_purple_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_purple_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_purple" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_purple_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_slab.json deleted file mode 100644 index 74219a1ac5..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_red_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_red" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_red_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_stair.json deleted file mode 100644 index 69aa10321a..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_red_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_red" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_red_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_wall.json deleted file mode 100644 index 9beda68b08..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_red_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_red_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_red" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_red_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_slab.json deleted file mode 100644 index 6b12d9e322..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_white_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_white" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_white_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_stair.json deleted file mode 100644 index 67bf63184b..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_white_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_white" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_white_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_wall.json deleted file mode 100644 index 1d715b3329..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_white_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_white_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_white" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_white_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_slab.json deleted file mode 100644 index 7ad346a4f6..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_yellow_slab" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_yellow" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_yellow_slab" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_stair.json deleted file mode 100644 index 7487c4a176..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_yellow_stair" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_yellow" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_yellow_stair" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_wall.json deleted file mode 100644 index cdf1e8b6e6..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/reinforced_concrete_yellow_wall.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/reinforced_concrete_yellow_wall" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:reinforced_concrete_yellow" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stonecutting/reinforced_concrete_yellow_wall" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/smooth_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/smooth_royal_steel_block.json index cc5c35124f..d81ab94fc6 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/smooth_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/smooth_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/smooth_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/smooth_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..1f164eab40 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/white_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:white_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/white_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..35dc08260e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/white_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:white_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/white_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_wall.json new file mode 100644 index 0000000000..753fbbeae4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/white_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/white_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:white_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/white_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..6f933684c1 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/yellow_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:yellow_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/yellow_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..6c8015df7d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/yellow_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:yellow_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/yellow_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_wall.json new file mode 100644 index 0000000000..36cc08315d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/stonecutting/yellow_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/yellow_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:yellow_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stonecutting/yellow_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_block.json index 31dc1616c6..6b7981d121 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:sugar_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_sugar": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:sugar_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_sugar" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_from_sugar_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_from_sugar_block.json index 032c0692a7..feefcdff06 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_from_sugar_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/sugar_from_sugar_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:sugar_from_sugar_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_sugar_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:sugar_from_sugar_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_sugar_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/wet_sponge.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/wet_sponge.json index f8945fea53..38b6c7f71e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/wet_sponge.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/wet_sponge.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:wet_sponge" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_sponge_gemmule": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:wet_sponge" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_sponge_gemmule" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..0b822eb34f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:white_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:white_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:white_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..e0f838471e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:white_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:white_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:white_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_wall.json new file mode 100644 index 0000000000..9fe6c98c20 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:white_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:white_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:white_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..f4c400d0f5 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:yellow_reinforced_concrete_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:yellow_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:yellow_reinforced_concrete_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..c9e12d143b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_stair.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:yellow_reinforced_concrete_stair" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:yellow_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:yellow_reinforced_concrete_stair" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_wall.json new file mode 100644 index 0000000000..761cdaf3bb --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/yellow_reinforced_concrete_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:yellow_reinforced_concrete_wall" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_reinforced_concrete": { + "conditions": { + "items": [ + { + "items": "anvilcraft:yellow_reinforced_concrete" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_reinforced_concrete" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:yellow_reinforced_concrete_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/bulging/netherite_upgrade_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/bulging/netherite_upgrade_smithing_template.json new file mode 100644 index 0000000000..95b722cb7e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/bulging/netherite_upgrade_smithing_template.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:bulging/netherite_upgrade_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:bulging/netherite_upgrade_smithing_template" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/combat/trident.json b/src/generated/resources/data/anvilcraft/advancement/recipes/combat/trident.json index 57a49089b7..533195ce7e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/combat/trident.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/combat/trident.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:trident" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_prismarine_blade": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:trident" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_prismarine_blade" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/cooling/cooling_ember_metal_upgrade_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/cooling/cooling_ember_metal_upgrade_smithing_template.json deleted file mode 100644 index f3ec996679..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/cooling/cooling_ember_metal_upgrade_smithing_template.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_ember_metal_upgrade_smithing_template": { - "conditions": { - "items": [ - { - "items": "anvilcraft:ember_metal_upgrade_smithing_template" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:cooling_ember_metal_upgrade_smithing_template" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_ember_metal_upgrade_smithing_template" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:cooling_ember_metal_upgrade_smithing_template" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_black.json b/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_black.json index 29663ea784..06d69b7839 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_black.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_black.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_cocoa_butter": { + "has_cocoa_liquor": { "conditions": { "items": [ { @@ -41,7 +41,7 @@ "requirements": [ [ "has_the_recipe", - "has_cocoa_butter", + "has_cocoa_liquor", "has_cream", "has_sugar" ] diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_white.json b/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_white.json index 6c408f4d78..29ad352511 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_white.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_white.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_butter": { + "has_cocoa_butter": { "conditions": { "items": [ { @@ -41,7 +41,7 @@ "requirements": [ [ "has_the_recipe", - "has_butter", + "has_cocoa_butter", "has_cream", "has_sugar" ] diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/food/cocoa_liquor.json b/src/generated/resources/data/anvilcraft/advancement/recipes/food/cocoa_liquor.json index 4344d71524..69f00623ce 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/food/cocoa_liquor.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/food/cocoa_liquor.json @@ -1,7 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_coco_butter": { + "has_cocoa_butter": { "conditions": { "items": [ { @@ -11,7 +11,7 @@ }, "trigger": "minecraft:inventory_changed" }, - "has_coco_powder": { + "has_cocoa_powder": { "conditions": { "items": [ { @@ -31,8 +31,8 @@ "requirements": [ [ "has_the_recipe", - "has_coco_powder", - "has_coco_butter" + "has_cocoa_powder", + "has_cocoa_butter" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/food/creamy_bread_roll.json b/src/generated/resources/data/anvilcraft/advancement/recipes/food/creamy_bread_roll.json index f6b0ca9ee8..bf43c0ece6 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/food/creamy_bread_roll.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/food/creamy_bread_roll.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:creamy_bread_roll" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_cream": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:creamy_bread_roll" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_cream" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_chain.json deleted file mode 100644 index 4710222dc6..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_chain.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:item_crush/armor/chainmail_boots_2_chain" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:item_crush/armor/chainmail_boots_2_chain" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_iron_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_iron_chain.json new file mode 100644 index 0000000000..3d5d072c67 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_boots_2_iron_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:item_crush/armor/chainmail_boots_2_iron_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:item_crush/armor/chainmail_boots_2_iron_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_chain.json deleted file mode 100644 index 03de231bb8..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_chain.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:item_crush/armor/chainmail_chestplate_2_chain" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:item_crush/armor/chainmail_chestplate_2_chain" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_iron_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_iron_chain.json new file mode 100644 index 0000000000..6358390012 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_chestplate_2_iron_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:item_crush/armor/chainmail_chestplate_2_iron_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:item_crush/armor/chainmail_chestplate_2_iron_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_chain.json deleted file mode 100644 index 50ac57da5c..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_chain.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:item_crush/armor/chainmail_helmet_2_chain" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:item_crush/armor/chainmail_helmet_2_chain" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_iron_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_iron_chain.json new file mode 100644 index 0000000000..1580abfce9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_helmet_2_iron_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:item_crush/armor/chainmail_helmet_2_iron_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:item_crush/armor/chainmail_helmet_2_iron_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_chain.json deleted file mode 100644 index d5343811bc..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_chain.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:item_crush/armor/chainmail_leggings_2_chain" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:item_crush/armor/chainmail_leggings_2_chain" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_iron_chain.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_iron_chain.json new file mode 100644 index 0000000000..ba32d50c99 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/item_crush/armor/chainmail_leggings_2_iron_chain.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:item_crush/armor/chainmail_leggings_2_iron_chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:item_crush/armor/chainmail_leggings_2_iron_chain" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/banner_patterns.json b/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/banner_patterns.json new file mode 100644 index 0000000000..ece5d861db --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/banner_patterns.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:jewel_crafting/banner_patterns" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:jewel_crafting/banner_patterns" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/music_discs.json b/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/music_discs.json new file mode 100644 index 0000000000..294f56e61d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/music_discs.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:jewel_crafting/music_discs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:jewel_crafting/music_discs" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/trim_templates.json b/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/trim_templates.json new file mode 100644 index 0000000000..781feceacc --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/jewel_crafting/trim_templates.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:jewel_crafting/trim_templates" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:jewel_crafting/trim_templates" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/amber.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/amber.json index e63cfa721b..20c218dc3f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/amber.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/amber.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:amber" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_amber_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:amber" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_amber_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/crab_trap.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/crab_trap.json index e1fa36dd7b..f5402d6df9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/crab_trap.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/crab_trap.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:crab_trap" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_string": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:crab_trap" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_string" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/exp_gem.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/exp_gem.json index 9aa929cfaa..69560d1197 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/exp_gem.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/exp_gem.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:exp_gem" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_exp_gem_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:exp_gem" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_exp_gem_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/heart_of_the_sea.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/heart_of_the_sea.json index 47baa4bbe7..4c2212a1be 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/heart_of_the_sea.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/heart_of_the_sea.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heart_of_the_sea" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_sea_heart_shell": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:heart_of_the_sea" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_sea_heart_shell" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_block.json index 72ed3bd6ea..0950ef212f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:magnet_ingot_from_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_magnet_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magnet_ingot_from_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_magnet_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_hollow_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_hollow_block.json index 0fcf309a9c..1ab6e626d5 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_hollow_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnet_ingot_from_hollow_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:magnet_ingot_from_hollow_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_hollow_magnet_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magnet_ingot_from_hollow_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_hollow_magnet_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnetoelectric_core.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnetoelectric_core.json index ae2108db51..8c223b0255 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnetoelectric_core.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/magnetoelectric_core.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:magnetoelectric_core" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_hollow_magnet_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magnetoelectric_core" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_hollow_magnet_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/multiphase_transcendium.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/multiphase_transcendium.json index dbac1344ae..8fcd562da4 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/multiphase_transcendium.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/multiphase_transcendium.json @@ -1,13 +1,23 @@ { "parent": "minecraft:recipes/root", "criteria": { + "has_multiphase_matter": { + "conditions": { + "items": [ + { + "items": "anvilcraft:multiphase_matter" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:multiphase_transcendium" }, "trigger": "minecraft:recipe_unlocked" }, - "hasitem": { + "has_transcendium_ingot": { "conditions": { "items": [ { @@ -16,12 +26,24 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_transcendium_upgrade_smithing_template": { + "conditions": { + "items": [ + { + "items": "anvilcraft:transcendium_upgrade_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_transcendium_upgrade_smithing_template", + "has_multiphase_matter", + "has_transcendium_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/netherrack.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/netherrack.json new file mode 100644 index 0000000000..191b669106 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/netherrack.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rotten_flesh_block": { + "conditions": { + "items": [ + { + "items": "anvilcraft:rotten_flesh_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:netherrack" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rotten_flesh_block" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:netherrack" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/resin.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/resin.json index 23fcf97908..865cd59164 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/resin.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/resin.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:resin" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_resin_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:resin" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_resin_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/royal_steel_ingot_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/royal_steel_ingot_from_royal_steel_block.json index 6486ce3235..af319c2174 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/royal_steel_ingot_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/royal_steel_ingot_from_royal_steel_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:royal_steel_ingot_from_royal_steel_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:royal_steel_ingot_from_royal_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/ruby.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/ruby.json index 51a9b80cd7..392e7e2a78 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/ruby.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/ruby.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:ruby" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ruby_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:ruby" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ruby_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/sapphire.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/sapphire.json index f75dd3a527..bb84b1bf2a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/sapphire.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/sapphire.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:sapphire" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_sapphire_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:sapphire" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_sapphire_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_anvil.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_anvil.json index 7e02d989bd..b35ace15c9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_anvil.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_anvil.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_anvil" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_anvil" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_grindstone.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_grindstone.json index 8d5ff300a5..4643e5c72f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_grindstone.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_grindstone.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_grindstone" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_grindstone" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_smithing_table.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_smithing_table.json index b4d21bfd33..20c6ebc02e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_smithing_table.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/ember_smithing_table.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_smithing_table" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_smithing_table" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_anvil.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_anvil.json index c344b82c77..941d898ecb 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_anvil.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_anvil.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_anvil" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_anvil" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_grindstone.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_grindstone.json index 972a382ca0..8059bd5fc3 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_grindstone.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_grindstone.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_grindstone" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_grindstone" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_smithing_table.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_smithing_table.json index f56ffb59db..4559aa3c46 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_smithing_table.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/frost_smithing_table.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_smithing_table" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_smithing_table" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_anvil.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_anvil.json index 089e66f31d..0e8df4ee79 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_anvil.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_anvil.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_anvil" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_anvil" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_grindstone.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_grindstone.json index 57ed02de9f..525f128fbe 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_grindstone.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_grindstone.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_grindstone" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_grindstone" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_smithing_table.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_smithing_table.json index 55032eb46e..b0c7fefa1b 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_smithing_table.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/royal_smithing_table.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_smithing_table" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_smithing_table" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/transcendence_anvil.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/transcendence_anvil.json index d51022b638..32d9977e7a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/transcendence_anvil.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/smithing/transcendence_anvil.json @@ -7,7 +7,7 @@ }, "trigger": "minecraft:recipe_unlocked" }, - "hasitem": { + "has_transcendium_block": { "conditions": { "items": [ { @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "hasitem" + "has_transcendium_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_middle.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_middle.json index a0b5dfec88..304e57ed43 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_middle.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_middle.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/power_converter_middle" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_power_converter_big": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/power_converter_middle" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_power_converter_big" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_big.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_big.json index 92820f4fd7..97d2cc221e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_big.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_big.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/power_converter_small_from_big" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_power_converter_big": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/power_converter_small_from_big" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_power_converter_big" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_middle.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_middle.json index a80e13af8c..41c3539e63 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_middle.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/stonecutting/power_converter_small_from_middle.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stonecutting/power_converter_small_from_middle" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_power_converter_big": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stonecutting/power_converter_small_from_middle" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_power_converter_big" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/topaz.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/topaz.json index 073f43362a..5a4047f35b 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/topaz.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/topaz.json @@ -7,7 +7,7 @@ }, "trigger": "minecraft:recipe_unlocked" }, - "hasitem": { + "has_topaz_block": { "conditions": { "items": [ { @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "hasitem" + "has_topaz_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_rage.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_rage.json index 849ea7b2ab..50bb3c4b10 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_rage.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_rage.json @@ -1,17 +1,37 @@ { "parent": "minecraft:recipes/root", "criteria": { + "has_cursed_gold_block": { + "conditions": { + "items": [ + { + "items": "anvilcraft:cursed_gold_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_ember_metal_nugget": { + "conditions": { + "items": [ + { + "items": "anvilcraft:ember_metal_nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:totem_of_rage" }, "trigger": "minecraft:recipe_unlocked" }, - "hasitem": { + "has_totem_of_undying": { "conditions": { "items": [ { - "items": "anvilcraft:ember_metal_nugget" + "items": "minecraft:totem_of_undying" } ] }, @@ -21,7 +41,9 @@ "requirements": [ [ "has_the_recipe", - "hasitem" + "has_totem_of_undying", + "has_cursed_gold_block", + "has_ember_metal_nugget" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_recovery.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_recovery.json index 0bb18f8556..ceb8f3c318 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_recovery.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/totem_of_recovery.json @@ -1,17 +1,37 @@ { "parent": "minecraft:recipes/root", "criteria": { + "has_echo_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:echo_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_recovery_pearl": { + "conditions": { + "items": [ + { + "items": "anvilcraft:recovery_pearl" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:totem_of_recovery" }, "trigger": "minecraft:recipe_unlocked" }, - "hasitem": { + "has_totem_of_undying": { "conditions": { "items": [ { - "items": "minecraft:echo_shard" + "items": "minecraft:totem_of_undying" } ] }, @@ -21,7 +41,9 @@ "requirements": [ [ "has_the_recipe", - "hasitem" + "has_totem_of_undying", + "has_recovery_pearl", + "has_echo_shard" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/transparent_crafting_table.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/transparent_crafting_table.json index 3abbd3423f..13f09a791a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/transparent_crafting_table.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/transparent_crafting_table.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:transparent_crafting_table" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_amethyst_shard": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:transparent_crafting_table" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_amethyst_shard" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/allay.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/allay.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/allay.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/allay.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/bat.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/bat.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/bat.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/bat.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/cow.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/cow.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/cow.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/cow.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/guardian.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/guardian.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/guardian.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/guardian.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/horse.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/horse.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/horse.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/horse.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/iron_golem.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/iron_golem.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/iron_golem.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/iron_golem.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/pig.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/pig.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/pig.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/pig.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/piglin.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/piglin.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/piglin.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/piglin.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/skeleton.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/skeleton.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/skeleton.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/skeleton.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/villager.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/villager.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/villager.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/villager.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/zombie.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/zombie.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform/zombie.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform/zombie.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform_with_item/zombie_to_giant_anvil.json b/src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform_with_item/zombie_to_giant_anvil.json similarity index 100% rename from src/generated/resources/data/anvilcraft/advancement/recipe/mob_transform_with_item/zombie_to_giant_anvil.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/mob_transform_with_item/zombie_to_giant_anvil.json diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/null/neutron_irradation/uranium_block_explosion.json b/src/generated/resources/data/anvilcraft/advancement/recipes/null/neutron_irradation/uranium_block_explosion.json new file mode 100644 index 0000000000..c119e49ff6 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/null/neutron_irradation/uranium_block_explosion.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:neutron_irradation/uranium_block_explosion" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:neutron_irradation/uranium_block_explosion" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/empty_propel_piston.json b/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/empty_propel_piston.json new file mode 100644 index 0000000000..ca9d438f95 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/empty_propel_piston.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "anvilcraft:ruby" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:empty_propel_piston" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:empty_propel_piston" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/hollow_magnet_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/hollow_magnet_block.json index d071eb94c4..adedb0af0c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/hollow_magnet_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/hollow_magnet_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:hollow_magnet_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_magnet_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:hollow_magnet_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_magnet_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/magnet_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/magnet_block.json index f36f010f0e..eaa90909f6 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/magnet_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/redstone/magnet_block.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:magnet_block" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_magnet_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magnet_block" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_magnet_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/eight_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/eight_to_one_smithing_template.json new file mode 100644 index 0000000000..772d08185e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/eight_to_one_smithing_template.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stamping_diff/eight_to_one_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stamping_diff/eight_to_one_smithing_template" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/four_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/four_to_one_smithing_template.json new file mode 100644 index 0000000000..488fd2468a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/four_to_one_smithing_template.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stamping_diff/four_to_one_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stamping_diff/four_to_one_smithing_template" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/two_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/two_to_one_smithing_template.json new file mode 100644 index 0000000000..b885650862 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_diff/two_to_one_smithing_template.json @@ -0,0 +1,21 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:stamping_diff/two_to_one_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:stamping_diff/two_to_one_smithing_template" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/eight_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/eight_to_one_smithing_template.json deleted file mode 100644 index f45c80ed33..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/eight_to_one_smithing_template.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stamping_unique_items/eight_to_one_smithing_template" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stamping_unique_items/eight_to_one_smithing_template" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/four_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/four_to_one_smithing_template.json deleted file mode 100644 index 07e2ca69da..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/four_to_one_smithing_template.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stamping_unique_items/four_to_one_smithing_template" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stamping_unique_items/four_to_one_smithing_template" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/two_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/two_to_one_smithing_template.json deleted file mode 100644 index f93c3d2319..0000000000 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/stamping_unique_items/two_to_one_smithing_template.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:stamping_unique_items/two_to_one_smithing_template" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:stamping_unique_items/two_to_one_smithing_template" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/amber_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/amber_block.json index 9a4c478936..04a1dbbb9c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/amber_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/amber_block.json @@ -1,16 +1,6 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_resin_block": { - "conditions": { - "items": [ - { - "items": "anvilcraft:resin_block" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:time_warp/amber_block" @@ -20,8 +10,7 @@ }, "requirements": [ [ - "has_the_recipe", - "has_resin_block" + "has_the_recipe" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_0.json b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_0.json index 63f454bf34..0c321a7f5e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_0.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_0.json @@ -1,16 +1,6 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_royal_steel_ingot": { - "conditions": { - "items": [ - { - "items": "anvilcraft:royal_steel_ingot" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:time_warp/frost_metal_ingot_0" @@ -20,8 +10,7 @@ }, "requirements": [ [ - "has_the_recipe", - "has_royal_steel_ingot" + "has_the_recipe" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_1.json b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_1.json index 0fec7f40c3..5ecca78ed6 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_1.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_1.json @@ -1,26 +1,6 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_iron_ingot": { - "conditions": { - "items": [ - { - "items": "minecraft:iron_ingot" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_royal_steel_ingot": { - "conditions": { - "items": [ - { - "items": "anvilcraft:royal_steel_ingot" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:time_warp/frost_metal_ingot_1" @@ -30,9 +10,7 @@ }, "requirements": [ [ - "has_the_recipe", - "has_royal_steel_ingot", - "has_iron_ingot" + "has_the_recipe" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_2.json b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_2.json index b6878b759c..0f8e2f6982 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_2.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_2.json @@ -1,26 +1,6 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_royal_steel_ingot": { - "conditions": { - "items": [ - { - "items": "anvilcraft:royal_steel_ingot" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_silver_ingot": { - "conditions": { - "items": [ - { - "items": "anvilcraft:silver_ingot" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:time_warp/frost_metal_ingot_2" @@ -30,9 +10,7 @@ }, "requirements": [ [ - "has_the_recipe", - "has_royal_steel_ingot", - "has_silver_ingot" + "has_the_recipe" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_3.json b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_3.json index 306406ab4b..8748cfc0c1 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_3.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/frost_metal_ingot_3.json @@ -1,38 +1,16 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_royal_steel_ingot": { - "conditions": { - "items": [ - { - "items": "anvilcraft:royal_steel_ingot" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:time_warp/frost_metal_ingot_3" }, "trigger": "minecraft:recipe_unlocked" - }, - "has_titanium_ingot": { - "conditions": { - "items": [ - { - "items": "anvilcraft:titanium_ingot" - } - ] - }, - "trigger": "minecraft:inventory_changed" } }, "requirements": [ [ - "has_the_recipe", - "has_royal_steel_ingot", - "has_titanium_ingot" + "has_the_recipe" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/mob_amber_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/mob_amber_block.json index e705acc0df..50c6902224 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/mob_amber_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/mob_amber_block.json @@ -1,16 +1,6 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_resin_block": { - "conditions": { - "items": [ - { - "items": "anvilcraft:resin_block" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:mob_amber_block" @@ -20,8 +10,7 @@ }, "requirements": [ [ - "has_the_recipe", - "has_resin_block" + "has_the_recipe" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/resentful_amber_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/resentful_amber_block.json index b57f451b28..ab4c4fda59 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/resentful_amber_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/time_warp/resentful_amber_block.json @@ -1,16 +1,6 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_resin_block": { - "conditions": { - "items": [ - { - "items": "anvilcraft:resin_block" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "has_the_recipe": { "conditions": { "recipe": "anvilcraft:resentful_amber_block" @@ -20,8 +10,7 @@ }, "requirements": [ [ - "has_the_recipe", - "has_resin_block" + "has_the_recipe" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_axe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_axe.json index ad16a1e4db..73345417a2 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_axe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_axe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:amethyst_axe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_amethyst_shard": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:amethyst_axe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_amethyst_shard" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_hoe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_hoe.json index c67edfc9cd..55938f35f1 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_hoe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_hoe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:amethyst_hoe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_amethyst_shard": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:amethyst_hoe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_amethyst_shard" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_pickaxe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_pickaxe.json index 8dc7108bab..238c8f0e73 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_pickaxe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:amethyst_pickaxe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_amethyst_shard": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:amethyst_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_amethyst_shard" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_shovel.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_shovel.json index 0371cb262f..80813310c0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_shovel.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_shovel.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:amethyst_shovel" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_amethyst_shard": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:amethyst_shovel" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_amethyst_shard" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_sword.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_sword.json index 12141c014b..5e039f4fb0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_sword.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/amethyst_sword.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:amethyst_sword" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_amethyst_shard": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:amethyst_sword" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_amethyst_shard" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/guide_book.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/guide_book.json index fd5f882513..4fb7ea2e05 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/guide_book.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/guide_book.json @@ -1,13 +1,17 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { + "has_anvil": { "conditions": { - "recipe": "anvilcraft:guide_book" + "items": [ + { + "items": "minecraft:anvil" + } + ] }, - "trigger": "minecraft:recipe_unlocked" + "trigger": "minecraft:inventory_changed" }, - "hasitem": { + "has_book": { "conditions": { "items": [ { @@ -16,12 +20,41 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_chipped_anvil": { + "conditions": { + "items": [ + { + "items": "minecraft:chipped_anvil" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_damaged_anvil": { + "conditions": { + "items": [ + { + "items": "minecraft:damaged_anvil" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:guide_book" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_anvil", + "has_chipped_anvil", + "has_damaged_anvil", + "has_book" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/magnet.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/magnet.json index d07e7b8481..047c0866ef 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/magnet.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/magnet.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:magnet" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_magnet_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:magnet" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_magnet_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/recovery_pearl.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/recovery_pearl.json index 431ec49897..d33eb0e200 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/recovery_pearl.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/recovery_pearl.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:recovery_pearl" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ender_pearl": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:recovery_pearl" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ender_pearl" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_anvil_hammer.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_anvil_hammer.json index 55251c469c..34d6d2a4b9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_anvil_hammer.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_anvil_hammer.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_anvil_hammer" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_anvil_hammer" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_dragon_rod.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_dragon_rod.json index 219f6a0108..b4ef9db639 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_dragon_rod.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_dragon_rod" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_dragon_rod" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_axe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_axe.json index 994f2a84ff..60c13b4bae 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_axe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_axe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_metal_axe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_metal_axe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_hoe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_hoe.json index 92e624640f..4fe36c0893 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_hoe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_hoe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_metal_hoe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_metal_hoe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_pickaxe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_pickaxe.json index cdb805b6cc..95cfdc4447 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_pickaxe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_metal_pickaxe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_metal_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_shovel.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_shovel.json index fc665a69a5..b3cfadc246 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_shovel.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_shovel.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_metal_shovel" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_metal_shovel" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_sword.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_sword.json index dd00373cc7..b267783771 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_sword.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/ember_metal_sword.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/ember_metal_sword" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_ember_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/ember_metal_sword" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_ember_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_axe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_axe.json index 9355eb59d6..f5506deb10 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_axe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_axe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_metal_axe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_metal_axe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_hoe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_hoe.json index 3c3cbd9c33..8d68c6ed1b 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_hoe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_hoe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_metal_hoe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_metal_hoe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_pickaxe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_pickaxe.json index 1b3946caae..a70c68f924 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_pickaxe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_metal_pickaxe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_metal_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_shovel.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_shovel.json index f1fce129df..283456989e 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_shovel.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_shovel.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_metal_shovel" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_metal_shovel" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_sword.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_sword.json index 90be6376a1..e58e9fc5c1 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_sword.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/frost_metal_sword.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/frost_metal_sword" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_frost_metal_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/frost_metal_sword" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_frost_metal_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_anvil_hammer.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_anvil_hammer.json index f5690cd711..ddda98f12a 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_anvil_hammer.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_anvil_hammer.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_anvil_hammer" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_block": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_anvil_hammer" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_axe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_axe.json index 8ec0e328a6..652a1314a6 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_axe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_axe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_steel_axe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_steel_axe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_hoe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_hoe.json index 0565fdffb6..fc175240d5 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_hoe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_hoe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_steel_hoe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_steel_hoe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_pickaxe.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_pickaxe.json index 396b29fa9b..b05691a1b7 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_pickaxe.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_steel_pickaxe" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_steel_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_shovel.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_shovel.json index ae59e3094e..f0d8b59e82 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_shovel.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_shovel.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_steel_shovel" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_steel_shovel" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_sword.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_sword.json index 2d90116f99..288c958ef9 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_sword.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/royal_steel_sword.json @@ -1,13 +1,7 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:smithing/royal_steel_sword" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { + "has_royal_steel_ingot": { "conditions": { "items": [ { @@ -16,12 +10,18 @@ ] }, "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:smithing/royal_steel_sword" + }, + "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "hasitem" + "has_royal_steel_ingot" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_anvil_hammer.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_anvil_hammer.json index b258edc6de..16ca7e84d0 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_anvil_hammer.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_anvil_hammer.json @@ -7,7 +7,7 @@ }, "trigger": "minecraft:recipe_unlocked" }, - "hasitem": { + "has_transcendium_block": { "conditions": { "items": [ { @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "hasitem" + "has_transcendium_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_dragon_rod.json b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_dragon_rod.json index e65af614c3..9437c6770c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/tools/smithing/transcendence_dragon_rod.json @@ -7,7 +7,7 @@ }, "trigger": "minecraft:recipe_unlocked" }, - "hasitem": { + "has_transcendium_block": { "conditions": { "items": [ { @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "hasitem" + "has_transcendium_block" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/loot_modifiers/disintegration_loot_modifier.json b/src/generated/resources/data/anvilcraft/loot_modifiers/disintegration_loot_modifier.json deleted file mode 100644 index fe09dd8f87..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_modifiers/disintegration_loot_modifier.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "anvilcraft:disintegration_loot_modifier", - "conditions": [] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_modifiers/smelting_loot_modifier.json b/src/generated/resources/data/anvilcraft/loot_modifiers/smelting_loot_modifier.json deleted file mode 100644 index 435c7961eb..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_modifiers/smelting_loot_modifier.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "type": "anvilcraft:smelting_loot_modifier", - "conditions": [] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/advancement/root.json b/src/generated/resources/data/anvilcraft/loot_table/advancement/root.json deleted file mode 100644 index 95c8d646f0..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/advancement/root.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:guide_book" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:advancement/root" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete.json new file mode 100644 index 0000000000..2e446a4f91 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:black_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/black_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..42cf940857 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:black_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:black_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/black_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..a329ab76eb --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:black_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/black_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_wall.json new file mode 100644 index 0000000000..ae928caca2 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/black_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:black_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/black_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete.json new file mode 100644 index 0000000000..c64701080e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:blue_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/blue_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..80340271a1 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:blue_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:blue_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/blue_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..0183d06015 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:blue_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/blue_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..fca0093e7a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/blue_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:blue_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/blue_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete.json new file mode 100644 index 0000000000..1b9e38831e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:brown_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/brown_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..e96785dcf4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:brown_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:brown_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/brown_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8eded07891 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:brown_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/brown_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_wall.json new file mode 100644 index 0000000000..446e9950c1 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/brown_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:brown_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/brown_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete.json new file mode 100644 index 0000000000..ee79806db6 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:cyan_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/cyan_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..49e3c5bcab --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:cyan_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:cyan_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/cyan_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..9c1cafa223 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:cyan_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/cyan_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_wall.json new file mode 100644 index 0000000000..e060b8490e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/cyan_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:cyan_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/cyan_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/fire_cauldron.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/fire_cauldron.json deleted file mode 100644 index 569553da03..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/fire_cauldron.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:cauldron" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/fire_cauldron" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete.json new file mode 100644 index 0000000000..62a6f8ad44 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:gray_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/gray_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..4530aa643f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:gray_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:gray_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/gray_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..0787ed37d4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:gray_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/gray_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..478086f08e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/gray_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:gray_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/gray_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete.json new file mode 100644 index 0000000000..d73fe4de1f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:green_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/green_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..90f86fcc37 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:green_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:green_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/green_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..35dc2a06e9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:green_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/green_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_wall.json new file mode 100644 index 0000000000..3a3a168ca1 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/green_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:green_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/green_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete.json new file mode 100644 index 0000000000..b22e87f52c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:light_blue_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_blue_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..95dfef6466 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:light_blue_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:light_blue_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_blue_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..eed457d198 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:light_blue_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_blue_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..e9b699d637 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_blue_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:light_blue_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_blue_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete.json new file mode 100644 index 0000000000..33b3e97ce3 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:light_gray_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_gray_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..5a4db754b9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:light_gray_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:light_gray_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_gray_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..e3d778754b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:light_gray_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_gray_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..3b778fb99a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/light_gray_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:light_gray_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/light_gray_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete.json new file mode 100644 index 0000000000..e02969c0b9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:lime_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/lime_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..314aed3b69 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:lime_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:lime_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/lime_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..df9c97b85d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:lime_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/lime_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_wall.json new file mode 100644 index 0000000000..2462326c98 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/lime_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:lime_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/lime_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete.json new file mode 100644 index 0000000000..f312b76026 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:magenta_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/magenta_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..208ad398c7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:magenta_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:magenta_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/magenta_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..d068165f1e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:magenta_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/magenta_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_wall.json new file mode 100644 index 0000000000..a5bb8fe62f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/magenta_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:magenta_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/magenta_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete.json new file mode 100644 index 0000000000..380307c0b7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:orange_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/orange_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..b13c347046 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:orange_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:orange_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/orange_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8f03ea852a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:orange_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/orange_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_wall.json new file mode 100644 index 0000000000..ff87d42b93 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/orange_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:orange_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/orange_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete.json new file mode 100644 index 0000000000..c25a52ddb8 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:pink_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/pink_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2797cd28c3 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:pink_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:pink_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/pink_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..a2ae6b1efa --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:pink_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/pink_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_wall.json new file mode 100644 index 0000000000..31dc63d0f9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/pink_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:pink_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/pink_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete.json new file mode 100644 index 0000000000..26d7307e49 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:purple_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/purple_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..4697014d6b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:purple_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:purple_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/purple_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..934136cf3c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:purple_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/purple_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_wall.json new file mode 100644 index 0000000000..0ebb403a66 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/purple_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:purple_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/purple_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete.json new file mode 100644 index 0000000000..56a2f2d3d7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:red_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/red_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..001a764bcd --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:red_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:red_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/red_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..97cb81b3b8 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:red_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/red_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1ee859f358 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/red_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:red_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/red_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black.json deleted file mode 100644 index 2b5c26df4e..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_black" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_black" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_slab.json deleted file mode 100644 index 42d46dda4d..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_black_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_black_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_black_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_stair.json deleted file mode 100644 index b0b20984cb..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_black_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_black_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_wall.json deleted file mode 100644 index 5be052d5af..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_black_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_black_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_black_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue.json deleted file mode 100644 index 06d04797bf..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_blue" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_blue" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_slab.json deleted file mode 100644 index e185cec8db..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_blue_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_blue_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_blue_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_stair.json deleted file mode 100644 index ff1860127f..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_blue_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_blue_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_wall.json deleted file mode 100644 index e4725cdb94..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_blue_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_blue_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_blue_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown.json deleted file mode 100644 index 34ae1ef769..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_brown" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_brown" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_slab.json deleted file mode 100644 index 0ea8ea5499..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_brown_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_brown_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_brown_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_stair.json deleted file mode 100644 index fb9389be2c..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_brown_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_brown_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_wall.json deleted file mode 100644 index bad6c72849..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_brown_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_brown_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_brown_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan.json deleted file mode 100644 index 9ca70bc5f9..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_cyan" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_cyan" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_slab.json deleted file mode 100644 index 6944322b39..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_cyan_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_cyan_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_cyan_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_stair.json deleted file mode 100644 index cafe97fe20..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_cyan_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_cyan_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_wall.json deleted file mode 100644 index 78bdf5ad64..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_cyan_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_cyan_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_cyan_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray.json deleted file mode 100644 index e0d25feeb5..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_gray" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_gray" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_slab.json deleted file mode 100644 index b66fab3790..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_gray_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_gray_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_gray_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_stair.json deleted file mode 100644 index 5a8318756c..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_gray_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_gray_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_wall.json deleted file mode 100644 index e807fa1f4f..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_gray_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_gray_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_gray_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green.json deleted file mode 100644 index 6208050cea..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_green" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_green" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_slab.json deleted file mode 100644 index 76498e5dd5..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_green_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_green_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_green_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_stair.json deleted file mode 100644 index 286cb444be..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_green_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_green_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_wall.json deleted file mode 100644 index e64817df7c..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_green_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_green_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_green_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue.json deleted file mode 100644 index 870066df23..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_light_blue" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_blue" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index 10fd55c74f..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_light_blue_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_light_blue_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_blue_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index 5a2a3d55e6..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_light_blue_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_blue_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_wall.json deleted file mode 100644 index 9c768aca05..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_blue_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_light_blue_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_blue_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray.json deleted file mode 100644 index 4ae5e1fae7..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_light_gray" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_gray" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index 3a5f4f7741..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_light_gray_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_light_gray_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_gray_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index 8d999e1b84..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_light_gray_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_gray_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_wall.json deleted file mode 100644 index a73c5c7f8c..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_light_gray_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_light_gray_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_light_gray_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime.json deleted file mode 100644 index 46052df260..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_lime" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_lime" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_slab.json deleted file mode 100644 index d7929bce86..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_lime_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_lime_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_lime_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_stair.json deleted file mode 100644 index a01b473344..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_lime_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_lime_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_wall.json deleted file mode 100644 index a65c0f738b..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_lime_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_lime_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_lime_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta.json deleted file mode 100644 index 3f1ae55110..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_magenta" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_magenta" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_slab.json deleted file mode 100644 index b01c9cc8c3..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_magenta_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_magenta_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_magenta_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_stair.json deleted file mode 100644 index bd6d549b6c..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_magenta_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_magenta_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_wall.json deleted file mode 100644 index 73915637bf..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_magenta_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_magenta_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_magenta_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange.json deleted file mode 100644 index f263042d9d..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_orange" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_orange" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_slab.json deleted file mode 100644 index 228becae91..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_orange_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_orange_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_orange_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_stair.json deleted file mode 100644 index 1ac1501197..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_orange_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_orange_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_wall.json deleted file mode 100644 index 156d67814a..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_orange_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_orange_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_orange_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink.json deleted file mode 100644 index f07cc41d7f..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_pink" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_pink" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_slab.json deleted file mode 100644 index 19da0b3dd6..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_pink_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_pink_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_pink_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_stair.json deleted file mode 100644 index 06a6f9844a..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_pink_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_pink_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_wall.json deleted file mode 100644 index 2078d0b2a3..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_pink_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_pink_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_pink_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple.json deleted file mode 100644 index 1b628a7c5b..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_purple" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_purple" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_slab.json deleted file mode 100644 index 2db65ae07a..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_purple_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_purple_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_purple_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_stair.json deleted file mode 100644 index 67aacdf429..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_purple_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_purple_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_wall.json deleted file mode 100644 index 35ea7fc6ab..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_purple_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_purple_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_purple_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red.json deleted file mode 100644 index a223674803..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_red" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_red" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_slab.json deleted file mode 100644 index eed48e7ae3..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_red_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_red_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_red_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_stair.json deleted file mode 100644 index 74a2d53837..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_red_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_red_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_wall.json deleted file mode 100644 index 8b380e2ddf..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_red_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_red_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_red_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white.json deleted file mode 100644 index bac794a125..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_white" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_white" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_slab.json deleted file mode 100644 index d3d85c75c6..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_white_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_white_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_white_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_stair.json deleted file mode 100644 index f4f3993b09..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_white_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_white_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_wall.json deleted file mode 100644 index fec20bba77..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_white_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_white_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_white_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow.json deleted file mode 100644 index 33940370d5..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_yellow" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_yellow" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_slab.json deleted file mode 100644 index d42d711107..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "conditions": [ - { - "block": "anvilcraft:reinforced_concrete_yellow_slab", - "condition": "minecraft:block_state_property", - "properties": { - "type": "double" - } - } - ], - "count": 2.0, - "function": "minecraft:set_count" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "anvilcraft:reinforced_concrete_yellow_slab" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_yellow_slab" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_stair.json deleted file mode 100644 index e1e3cd68d1..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_yellow_stair" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_yellow_stair" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_wall.json deleted file mode 100644 index 1f521e69dd..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/reinforced_concrete_yellow_wall.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:reinforced_concrete_yellow_wall" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:blocks/reinforced_concrete_yellow_wall" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete.json new file mode 100644 index 0000000000..8d1ecd222d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:white_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/white_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..d52ddfc427 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:white_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:white_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/white_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..bff4ae5d11 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:white_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/white_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_wall.json new file mode 100644 index 0000000000..e59b1d97bd --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/white_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:white_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/white_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete.json new file mode 100644 index 0000000000..86e43f156a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:yellow_reinforced_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/yellow_reinforced_concrete" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..5dd5a8758d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "anvilcraft:yellow_reinforced_concrete_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "anvilcraft:yellow_reinforced_concrete_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/yellow_reinforced_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..ece880604d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_stair.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:yellow_reinforced_concrete_stair" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/yellow_reinforced_concrete_stair" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_wall.json new file mode 100644 index 0000000000..ad3df10f8e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/yellow_reinforced_concrete_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "anvilcraft:yellow_reinforced_concrete_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "anvilcraft:blocks/yellow_reinforced_concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/creeper.json b/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/creeper.json deleted file mode 100644 index 8e74bf5af6..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/creeper.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:creeper_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.25, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:creeper_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.05, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:creeper_head" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:entities/beheading/minecraft/creeper" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/ender_dragon.json b/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/ender_dragon.json deleted file mode 100644 index 4811cd6d40..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/ender_dragon.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 1.0, - "per_level_above_first": 0.0 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:dragon_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 1.0, - "per_level_above_first": 0.0 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.25, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:dragon_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 1.0, - "per_level_above_first": 0.0 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.05, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:dragon_head" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:entities/beheading/minecraft/ender_dragon" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/piglin.json b/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/piglin.json deleted file mode 100644 index d13e414ce1..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/piglin.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:piglin_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.25, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:piglin_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.05, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:piglin_head" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:entities/beheading/minecraft/piglin" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/player.json b/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/player.json deleted file mode 100644 index 6688c6a42b..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/player.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 1.0, - "per_level_above_first": 0.0 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "entity": "this", - "function": "minecraft:fill_player_head" - } - ], - "name": "minecraft:player_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 1.0, - "per_level_above_first": 0.0 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.25, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "entity": "this", - "function": "minecraft:fill_player_head" - } - ], - "name": "minecraft:player_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 1.0, - "per_level_above_first": 0.0 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.05, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "entity": "this", - "function": "minecraft:fill_player_head" - } - ], - "name": "minecraft:player_head" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:entities/beheading/minecraft/player" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/skeleton.json b/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/skeleton.json deleted file mode 100644 index ecfa80c436..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/skeleton.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:skeleton_skull" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.25, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:skeleton_skull" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.05, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:skeleton_skull" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:entities/beheading/minecraft/skeleton" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/wither_skeleton.json b/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/wither_skeleton.json deleted file mode 100644 index eaa14a8de9..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/wither_skeleton.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.07, - "per_level_above_first": 0.02 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:wither_skeleton_skull" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.07, - "per_level_above_first": 0.02 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.25, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:wither_skeleton_skull" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.07, - "per_level_above_first": 0.02 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.05, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:wither_skeleton_skull" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:entities/beheading/minecraft/wither_skeleton" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/zombie.json b/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/zombie.json deleted file mode 100644 index d96f627bee..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/entities/beheading/minecraft/zombie.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:zombie_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.25, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:zombie_head" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:random_chance_with_enchanted_bonus", - "enchanted_chance": { - "type": "minecraft:linear", - "base": 0.01, - "per_level_above_first": 0.01 - }, - "enchantment": "anvilcraft:beheading", - "unenchanted_chance": 0.0 - }, - { - "condition": "minecraft:killed_by_player" - }, - { - "condition": "minecraft:inverted", - "term": { - "condition": "anvilcraft:match_data_component", - "predicate": { - "anvilcraft:merciless": {} - } - } - }, - { - "chance": 0.05, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:zombie_head" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:entities/beheading/minecraft/zombie" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/common.json b/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/common.json deleted file mode 100644 index 2b5e7b20da..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/common.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "minecraft:chest", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "chance": 0.1, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "anvilcraft:crab_claw" - }, - { - "type": "minecraft:item", - "name": "minecraft:seagrass", - "weight": 15 - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:gameplay/crab_trap/common" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/jungle.json b/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/jungle.json deleted file mode 100644 index f7e52c3081..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/jungle.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "minecraft:chest", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:location_check", - "predicate": { - "biomes": [ - "minecraft:jungle", - "minecraft:bamboo_jungle", - "minecraft:sparse_jungle" - ] - } - }, - { - "chance": 0.1, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:bamboo" - }, - { - "type": "minecraft:item", - "name": "minecraft:cocoa_beans" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:gameplay/crab_trap/jungle" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/ocean.json b/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/ocean.json deleted file mode 100644 index 39ef2181f0..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/ocean.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "type": "minecraft:chest", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:location_check", - "predicate": { - "biomes": [ - "minecraft:ocean", - "minecraft:cold_ocean", - "minecraft:deep_ocean", - "minecraft:deep_cold_ocean", - "minecraft:frozen_ocean", - "minecraft:deep_frozen_ocean" - ] - } - }, - { - "chance": 0.1, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:cod" - }, - { - "type": "minecraft:item", - "name": "minecraft:kelp" - }, - { - "type": "minecraft:item", - "name": "minecraft:nautilus_shell" - }, - { - "type": "minecraft:item", - "name": "minecraft:ink_sac" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:gameplay/crab_trap/ocean" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/river.json b/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/river.json deleted file mode 100644 index aaed1a24cd..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/river.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "minecraft:chest", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:location_check", - "predicate": { - "biomes": [ - "minecraft:river", - "minecraft:frozen_river" - ] - } - }, - { - "chance": 0.1, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:salmon" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:gameplay/crab_trap/river" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/swamp.json b/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/swamp.json deleted file mode 100644 index 63afc1f6a5..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/swamp.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "minecraft:chest", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:location_check", - "predicate": { - "biomes": [ - "minecraft:swamp", - "minecraft:mangrove_swamp" - ] - } - }, - { - "chance": 0.1, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:lily_pad" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:gameplay/crab_trap/swamp" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/warm_ocean.json b/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/warm_ocean.json deleted file mode 100644 index cbfc18b0fe..0000000000 --- a/src/generated/resources/data/anvilcraft/loot_table/gameplay/crab_trap/warm_ocean.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "type": "minecraft:chest", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:location_check", - "predicate": { - "biomes": [ - "minecraft:warm_ocean", - "minecraft:lukewarm_ocean", - "minecraft:deep_lukewarm_ocean" - ] - } - }, - { - "chance": 0.1, - "condition": "minecraft:random_chance" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:tropical_fish" - }, - { - "type": "minecraft:item", - "name": "minecraft:pufferfish" - }, - { - "type": "minecraft:item", - "name": "minecraft:ink_sac" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "anvilcraft:gameplay/crab_trap/warm_ocean" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/activator_sliding_rail.json b/src/generated/resources/data/anvilcraft/recipe/activator_sliding_rail.json index ef3b1a26be..a039be742b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/activator_sliding_rail.json +++ b/src/generated/resources/data/anvilcraft/recipe/activator_sliding_rail.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "R": { - "item": "minecraft:redstone_block" - }, - "S": { - "item": "anvilcraft:sliding_rail" - } + "R": "minecraft:redstone_block", + "S": "anvilcraft:sliding_rail" }, "pattern": [ "SSS", diff --git a/src/generated/resources/data/anvilcraft/recipe/active_silencer.json b/src/generated/resources/data/anvilcraft/recipe/active_silencer.json index fa4639c534..d4689466ec 100644 --- a/src/generated/resources/data/anvilcraft/recipe/active_silencer.json +++ b/src/generated/resources/data/anvilcraft/recipe/active_silencer.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:amethyst_block" - }, - "B": { - "item": "minecraft:note_block" - }, - "C": { - "item": "anvilcraft:processor" - }, - "D": { - "item": "anvilcraft:piezoelectric_crystal" - } + "A": "minecraft:amethyst_block", + "B": "minecraft:note_block", + "C": "anvilcraft:processor", + "D": "anvilcraft:piezoelectric_crystal" }, "pattern": [ "ABA", @@ -21,7 +13,6 @@ "BDB" ], "result": { - "count": 1, "id": "anvilcraft:active_silencer" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/active_silencer_old.json b/src/generated/resources/data/anvilcraft/recipe/active_silencer_old.json index 65250c88de..c2090bd35f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/active_silencer_old.json +++ b/src/generated/resources/data/anvilcraft/recipe/active_silencer_old.json @@ -2,22 +2,15 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:amethyst_block" - }, - "B": { - "item": "minecraft:note_block" - }, - "C": { - "item": "minecraft:sculk_sensor" - } + "A": "minecraft:amethyst_block", + "B": "minecraft:note_block", + "C": "minecraft:sculk_sensor" }, "pattern": [ "ABA", "ACA" ], "result": { - "count": 1, "id": "anvilcraft:active_silencer" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/advanced_comparator.json b/src/generated/resources/data/anvilcraft/recipe/advanced_comparator.json index 6b89500500..86d5f75266 100644 --- a/src/generated/resources/data/anvilcraft/recipe/advanced_comparator.json +++ b/src/generated/resources/data/anvilcraft/recipe/advanced_comparator.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "B": { - "item": "anvilcraft:circuit_board" - }, - "C": { - "item": "minecraft:comparator" - }, - "I": { - "item": "minecraft:iron_ingot" - }, - "R": { - "item": "minecraft:redstone_torch" - } + "B": "anvilcraft:circuit_board", + "C": "minecraft:comparator", + "I": "minecraft:iron_ingot", + "R": "minecraft:redstone_torch" }, "pattern": [ " R ", @@ -21,7 +13,6 @@ "III" ], "result": { - "count": 1, "id": "anvilcraft:advanced_comparator" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/amber.json b/src/generated/resources/data/anvilcraft/recipe/amber.json index 07be9ca6e4..e41065104b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/amber.json +++ b/src/generated/resources/data/anvilcraft/recipe/amber.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:amber_block" - } + "anvilcraft:amber_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/amber_block.json b/src/generated/resources/data/anvilcraft/recipe/amber_block.json index 17cc37a40f..3eb22bbd9d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/amber_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/amber_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:amber" - } + "A": "anvilcraft:amber" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:amber_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/amethyst_axe.json b/src/generated/resources/data/anvilcraft/recipe/amethyst_axe.json index ab5714b4ee..4876d941cf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/amethyst_axe.json +++ b/src/generated/resources/data/anvilcraft/recipe/amethyst_axe.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:stick" - } + "A": "minecraft:amethyst_shard", + "B": "minecraft:stick" }, "pattern": [ "AA", @@ -15,14 +11,6 @@ " B" ], "result": { - "components": { - "minecraft:enchantments": { - "levels": { - "anvilcraft:felling": 1 - } - } - }, - "count": 1, "id": "anvilcraft:amethyst_axe" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/amethyst_hoe.json b/src/generated/resources/data/anvilcraft/recipe/amethyst_hoe.json index b0bd8d77b3..1beacdec70 100644 --- a/src/generated/resources/data/anvilcraft/recipe/amethyst_hoe.json +++ b/src/generated/resources/data/anvilcraft/recipe/amethyst_hoe.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:stick" - } + "A": "minecraft:amethyst_shard", + "B": "minecraft:stick" }, "pattern": [ "AA", @@ -15,14 +11,6 @@ " B" ], "result": { - "components": { - "minecraft:enchantments": { - "levels": { - "anvilcraft:harvest": 1 - } - } - }, - "count": 1, "id": "anvilcraft:amethyst_hoe" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/amethyst_pickaxe.json b/src/generated/resources/data/anvilcraft/recipe/amethyst_pickaxe.json index a2e57a0075..7466341c3d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/amethyst_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/recipe/amethyst_pickaxe.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:stick" - } + "A": "minecraft:amethyst_shard", + "B": "minecraft:stick" }, "pattern": [ "AAA", @@ -17,12 +13,9 @@ "result": { "components": { "minecraft:enchantments": { - "levels": { - "minecraft:fortune": 3 - } + "minecraft:fortune": 3 } }, - "count": 1, "id": "anvilcraft:amethyst_pickaxe" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/amethyst_shovel.json b/src/generated/resources/data/anvilcraft/recipe/amethyst_shovel.json index 15b1cb9d6b..4405e3ffcd 100644 --- a/src/generated/resources/data/anvilcraft/recipe/amethyst_shovel.json +++ b/src/generated/resources/data/anvilcraft/recipe/amethyst_shovel.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:stick" - } + "A": "minecraft:amethyst_shard", + "B": "minecraft:stick" }, "pattern": [ "A", @@ -17,12 +13,9 @@ "result": { "components": { "minecraft:enchantments": { - "levels": { - "minecraft:efficiency": 3 - } + "minecraft:efficiency": 3 } }, - "count": 1, "id": "anvilcraft:amethyst_shovel" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/amethyst_sword.json b/src/generated/resources/data/anvilcraft/recipe/amethyst_sword.json index 78896d9445..9d5ee8c785 100644 --- a/src/generated/resources/data/anvilcraft/recipe/amethyst_sword.json +++ b/src/generated/resources/data/anvilcraft/recipe/amethyst_sword.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:stick" - } + "A": "minecraft:amethyst_shard", + "B": "minecraft:stick" }, "pattern": [ "A", @@ -15,14 +11,6 @@ "B" ], "result": { - "components": { - "minecraft:enchantments": { - "levels": { - "anvilcraft:beheading": 1 - } - } - }, - "count": 1, "id": "anvilcraft:amethyst_sword" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/anvil_9.json b/src/generated/resources/data/anvilcraft/recipe/anvil_9.json index 3a504f732d..e8aa1e679b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/anvil_9.json +++ b/src/generated/resources/data/anvilcraft/recipe/anvil_9.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:heavy_iron_block" - }, - "B": { - "item": "minecraft:iron_block" - } + "A": "anvilcraft:heavy_iron_block", + "B": "minecraft:iron_block" }, "pattern": [ "AAA", diff --git a/src/generated/resources/data/anvilcraft/recipe/anvil_hammer.json b/src/generated/resources/data/anvilcraft/recipe/anvil_hammer.json index 821f56a9f2..2a1f40938a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/anvil_hammer.json +++ b/src/generated/resources/data/anvilcraft/recipe/anvil_hammer.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:anvil" - }, - "B": { - "item": "minecraft:lightning_rod" - }, - "C": { - "item": "minecraft:iron_ingot" - } + "A": "minecraft:anvil", + "B": "minecraft:lightning_rod", + "C": "minecraft:iron_ingot" }, "pattern": [ "A", @@ -18,7 +12,6 @@ "C" ], "result": { - "count": 1, "id": "anvilcraft:anvil_hammer" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/batch_crafter.json b/src/generated/resources/data/anvilcraft/recipe/batch_crafter.json index 45905778e0..acdf0a8125 100644 --- a/src/generated/resources/data/anvilcraft/recipe/batch_crafter.json +++ b/src/generated/resources/data/anvilcraft/recipe/batch_crafter.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "minecraft:glass" - }, - "B": { - "item": "minecraft:crafter" - }, - "D": { - "item": "anvilcraft:magnetoelectric_core" - }, - "E": { - "item": "anvilcraft:circuit_board" - } + "A": "minecraft:glass", + "B": "minecraft:crafter", + "D": "anvilcraft:magnetoelectric_core", + "E": "anvilcraft:circuit_board" }, "pattern": [ "ABA", @@ -21,7 +13,6 @@ "AEA" ], "result": { - "count": 1, "id": "anvilcraft:batch_crafter" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/batch_cutter.json b/src/generated/resources/data/anvilcraft/recipe/batch_cutter.json index 101a606dac..4007d442b8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/batch_cutter.json +++ b/src/generated/resources/data/anvilcraft/recipe/batch_cutter.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "minecraft:glass" - }, - "B": { - "item": "minecraft:stonecutter" - }, - "D": { - "item": "anvilcraft:magnetoelectric_core" - }, - "E": { - "item": "anvilcraft:circuit_board" - } + "A": "minecraft:glass", + "B": "minecraft:stonecutter", + "D": "anvilcraft:magnetoelectric_core", + "E": "anvilcraft:circuit_board" }, "pattern": [ "ABA", @@ -21,7 +13,6 @@ "AEA" ], "result": { - "count": 1, "id": "anvilcraft:batch_cutter" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json index 860ae56414..fcd0749a50 100644 --- a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:chocolate_black" - } + "A": "anvilcraft:chocolate_black" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:black_chocolate_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json index 0f53c467d7..025202209b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:black_chocolate_block" - } + "anvilcraft:black_chocolate_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_slab.json b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_slab.json index 4e24145d3c..7f04364b83 100644 --- a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_slab.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:black_chocolate_block" - } + "A": "anvilcraft:black_chocolate_block" }, "pattern": [ "AAA" diff --git a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_stairs.json b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_stairs.json index d7d367b2ec..ef38570d5e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_stairs.json +++ b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_stairs.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:black_chocolate_block" - } + "A": "anvilcraft:black_chocolate_block" }, "pattern": [ "A ", diff --git a/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..5856bb3fc5 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:black_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:black_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..bd248f9ad9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:black_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:black_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_wall.json new file mode 100644 index 0000000000..96029fbdaa --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/black_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:black_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:black_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot.json b/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot.json index bb79daf5e3..e61d8e8940 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:lead_ingot", - "ingredient": { - "item": "anvilcraft:raw_lead" - }, + "ingredient": "anvilcraft:raw_lead", "result": { - "count": 1, "id": "anvilcraft:lead_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot_from_ore.json index aae6f2e017..bb8cef0631 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/lead_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:lead_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_lead_ore" - }, + "ingredient": "anvilcraft:deepslate_lead_ore", "result": { - "count": 1, "id": "anvilcraft:lead_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot.json b/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot.json index dabdb0ed0b..ccfffe3fd8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:silver_ingot", - "ingredient": { - "item": "anvilcraft:raw_silver" - }, + "ingredient": "anvilcraft:raw_silver", "result": { - "count": 1, "id": "anvilcraft:silver_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot_from_ore.json index b07a044b8d..db994fc4b2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/silver_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:silver_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_silver_ore" - }, + "ingredient": "anvilcraft:deepslate_silver_ore", "result": { - "count": 1, "id": "anvilcraft:silver_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot.json b/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot.json index 4f62e88cb3..5a20235d7c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:tin_ingot", - "ingredient": { - "item": "anvilcraft:raw_tin" - }, + "ingredient": "anvilcraft:raw_tin", "result": { - "count": 1, "id": "anvilcraft:tin_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot_from_ore.json index e40f836cde..255f8b024a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/tin_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:tin_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_tin_ore" - }, + "ingredient": "anvilcraft:deepslate_tin_ore", "result": { - "count": 1, "id": "anvilcraft:tin_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot.json index 8aeca5dfda..d4976e6acf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:titanium_ingot", - "ingredient": { - "item": "anvilcraft:raw_titanium" - }, + "ingredient": "anvilcraft:raw_titanium", "result": { - "count": 1, "id": "anvilcraft:titanium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot_from_ore.json index fc45e5acd2..884e0d72a7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/titanium_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:titanium_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_titanium_ore" - }, + "ingredient": "anvilcraft:deepslate_titanium_ore", "result": { - "count": 1, "id": "anvilcraft:titanium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot.json b/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot.json index 8cb5bcad25..8232cd0ae0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:tungsten_ingot", - "ingredient": { - "item": "anvilcraft:raw_tungsten" - }, + "ingredient": "anvilcraft:raw_tungsten", "result": { - "count": 1, "id": "anvilcraft:tungsten_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot_from_ore.json index ffc6d31f0a..56a1ef0bcf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/tungsten_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:tungsten_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_tungsten_ore" - }, + "ingredient": "anvilcraft:deepslate_tungsten_ore", "result": { - "count": 1, "id": "anvilcraft:tungsten_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot.json index 080495319f..7d5df15f9b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:uranium_ingot", - "ingredient": { - "item": "anvilcraft:raw_uranium" - }, + "ingredient": "anvilcraft:raw_uranium", "result": { - "count": 1, "id": "anvilcraft:uranium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot_from_ore.json index 664c483124..d0bff081b7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/uranium_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:uranium_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_uranium_ore" - }, + "ingredient": "anvilcraft:deepslate_uranium_ore", "result": { - "count": 1, "id": "anvilcraft:uranium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot.json b/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot.json index eec9f13801..1f43219c10 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:zinc_ingot", - "ingredient": { - "item": "anvilcraft:raw_zinc" - }, + "ingredient": "anvilcraft:raw_zinc", "result": { - "count": 1, "id": "anvilcraft:zinc_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot_from_ore.json index 64aace512f..68759bc0cc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/blasting/zinc_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 100, "experience": 1.0, "group": "anvilcraft:zinc_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_zinc_ore" - }, + "ingredient": "anvilcraft:deepslate_zinc_ore", "result": { - "count": 1, "id": "anvilcraft:zinc_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_comparator.json b/src/generated/resources/data/anvilcraft/recipe/block_comparator.json index 696c29c635..5817be0da2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/block_comparator.json +++ b/src/generated/resources/data/anvilcraft/recipe/block_comparator.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "minecraft:observer" - }, - "B": { - "item": "minecraft:comparator" - }, - "C": { - "item": "anvilcraft:circuit_board" - }, - "D": { - "tag": "c:dusts/redstone" - } + "A": "minecraft:observer", + "B": "minecraft:comparator", + "C": "anvilcraft:circuit_board", + "D": "#c:dusts/redstone" }, "pattern": [ "ABA", @@ -21,7 +13,6 @@ " D " ], "result": { - "count": 1, "id": "anvilcraft:block_comparator" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_devourer.json b/src/generated/resources/data/anvilcraft/recipe/block_devourer.json index 8477ca1ea3..2d4a0754e0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/block_devourer.json +++ b/src/generated/resources/data/anvilcraft/recipe/block_devourer.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "minecraft:netherite_ingot" - }, - "B": { - "item": "minecraft:dragon_head" - }, - "C": { - "item": "minecraft:redstone" - }, - "D": { - "item": "minecraft:cobblestone" - } + "A": "minecraft:netherite_ingot", + "B": "minecraft:dragon_head", + "C": "minecraft:redstone", + "D": "minecraft:cobblestone" }, "pattern": [ "DA ", @@ -21,7 +13,6 @@ "DA " ], "result": { - "count": 1, "id": "anvilcraft:block_devourer" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_placer.json b/src/generated/resources/data/anvilcraft/recipe/block_placer.json index c67e9a4426..8b1e09a6d6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/block_placer.json +++ b/src/generated/resources/data/anvilcraft/recipe/block_placer.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "minecraft:cobblestone" - }, - "B": { - "item": "anvilcraft:crab_claw" - }, - "C": { - "item": "minecraft:redstone" - }, - "D": { - "item": "minecraft:hopper" - } + "A": "minecraft:cobblestone", + "B": "anvilcraft:crab_claw", + "C": "minecraft:redstone", + "D": "minecraft:hopper" }, "pattern": [ "AAA", @@ -21,7 +13,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:block_placer" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_bars.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_bars.json new file mode 100644 index 0000000000..572549bc4f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_bars.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:copper_bars" + } + ], + "result": { + "block": "minecraft:waxed_copper_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chain.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chain.json new file mode 100644 index 0000000000..39bd03abb6 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chain.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:copper_chain" + } + ], + "result": { + "block": "minecraft:waxed_copper_chain" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chest.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chest.json new file mode 100644 index 0000000000..755971831a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_chest.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:copper_chest" + } + ], + "result": { + "block": "minecraft:waxed_copper_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_golem_statue.json new file mode 100644 index 0000000000..d6a07f4153 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_golem_statue.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:copper_golem_statue" + } + ], + "result": { + "block": "minecraft:waxed_copper_golem_statue" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_lantern.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_lantern.json new file mode 100644 index 0000000000..ca55a66795 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_copper_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:copper_lantern" + } + ], + "result": { + "block": "minecraft:waxed_copper_lantern" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_bars.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_bars.json new file mode 100644 index 0000000000..21e0e42b79 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_bars.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:exposed_copper_bars" + } + ], + "result": { + "block": "minecraft:waxed_exposed_copper_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chain.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chain.json new file mode 100644 index 0000000000..88afb49f62 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chain.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:exposed_copper_chain" + } + ], + "result": { + "block": "minecraft:waxed_exposed_copper_chain" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chest.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chest.json new file mode 100644 index 0000000000..3455b8a83b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_chest.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:exposed_copper_chest" + } + ], + "result": { + "block": "minecraft:waxed_exposed_copper_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_golem_statue.json new file mode 100644 index 0000000000..3237454fc2 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_golem_statue.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:exposed_copper_golem_statue" + } + ], + "result": { + "block": "minecraft:waxed_exposed_copper_golem_statue" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_lantern.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_lantern.json new file mode 100644 index 0000000000..b0b22291af --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_copper_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:exposed_copper_lantern" + } + ], + "result": { + "block": "minecraft:waxed_exposed_copper_lantern" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_lightning_rod.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_lightning_rod.json new file mode 100644 index 0000000000..c7300382ff --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_exposed_lightning_rod.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:exposed_lightning_rod" + } + ], + "result": { + "block": "minecraft:waxed_exposed_lightning_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_lightning_rod.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_lightning_rod.json new file mode 100644 index 0000000000..fa1a048479 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_lightning_rod.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:lightning_rod" + } + ], + "result": { + "block": "minecraft:waxed_lightning_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_bars.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_bars.json new file mode 100644 index 0000000000..cb73b8823b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_bars.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:oxidized_copper_bars" + } + ], + "result": { + "block": "minecraft:waxed_oxidized_copper_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chain.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chain.json new file mode 100644 index 0000000000..242346d7ae --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chain.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:oxidized_copper_chain" + } + ], + "result": { + "block": "minecraft:waxed_oxidized_copper_chain" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chest.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chest.json new file mode 100644 index 0000000000..4c49167310 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_chest.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:oxidized_copper_chest" + } + ], + "result": { + "block": "minecraft:waxed_oxidized_copper_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_golem_statue.json new file mode 100644 index 0000000000..82277504b0 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_golem_statue.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:oxidized_copper_golem_statue" + } + ], + "result": { + "block": "minecraft:waxed_oxidized_copper_golem_statue" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_lantern.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_lantern.json new file mode 100644 index 0000000000..a61cc3bf7d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_copper_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:oxidized_copper_lantern" + } + ], + "result": { + "block": "minecraft:waxed_oxidized_copper_lantern" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_lightning_rod.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_lightning_rod.json new file mode 100644 index 0000000000..7bdcd75a04 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_oxidized_lightning_rod.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:oxidized_lightning_rod" + } + ], + "result": { + "block": "minecraft:waxed_oxidized_lightning_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_bars.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_bars.json new file mode 100644 index 0000000000..de17917437 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_bars.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:weathered_copper_bars" + } + ], + "result": { + "block": "minecraft:waxed_weathered_copper_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chain.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chain.json new file mode 100644 index 0000000000..f464d078a4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chain.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:weathered_copper_chain" + } + ], + "result": { + "block": "minecraft:waxed_weathered_copper_chain" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chest.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chest.json new file mode 100644 index 0000000000..f8b9cbc7fb --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_chest.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:weathered_copper_chest" + } + ], + "result": { + "block": "minecraft:waxed_weathered_copper_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_golem_statue.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_golem_statue.json new file mode 100644 index 0000000000..3b3c06ef41 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_golem_statue.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:weathered_copper_golem_statue" + } + ], + "result": { + "block": "minecraft:waxed_weathered_copper_golem_statue" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_lantern.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_lantern.json new file mode 100644 index 0000000000..f982a06fbd --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_copper_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:weathered_copper_lantern" + } + ], + "result": { + "block": "minecraft:waxed_weathered_copper_lantern" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_lightning_rod.json b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_lightning_rod.json new file mode 100644 index 0000000000..e5bd649263 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/block_smear/waxed_weathered_lightning_rod.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:block_smear", + "inputs": [ + { + "blocks": "minecraft:honeycomb_block" + }, + { + "blocks": "minecraft:weathered_lightning_rod" + } + ], + "result": { + "block": "minecraft:waxed_weathered_lightning_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..1131b8dbc9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:blue_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:blue_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..bb2f58490a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:blue_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:blue_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1e0926c377 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/blue_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:blue_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/brass_block.json b/src/generated/resources/data/anvilcraft/recipe/brass_block.json index 82ccc17e67..18c2f2c83e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/brass_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/brass_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/brass" - } + "A": "#c:ingots/brass" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:brass_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/brass_ingot.json b/src/generated/resources/data/anvilcraft/recipe/brass_ingot.json index e578f45bc0..fad4efa2cf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/brass_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/brass_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:brass_ingot", "key": { - "A": { - "tag": "c:nuggets/brass" - } + "A": "#c:nuggets/brass" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:brass_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/brass_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/brass_ingot_from_block.json index 7bbc5d51f6..fa9dddf1fa 100644 --- a/src/generated/resources/data/anvilcraft/recipe/brass_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/brass_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:brass_ingot", "ingredients": [ - { - "item": "anvilcraft:brass_block" - } + "anvilcraft:brass_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/brass_nugget.json b/src/generated/resources/data/anvilcraft/recipe/brass_nugget.json index 59a9d491fb..05a9bc2077 100644 --- a/src/generated/resources/data/anvilcraft/recipe/brass_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/brass_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/brass" - } + "#c:ingots/brass" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/brass_pressure_plate_from_ingots_brass.json b/src/generated/resources/data/anvilcraft/recipe/brass_pressure_plate_from_ingots_brass.json index 08e6d07df2..d8bb6ee334 100644 --- a/src/generated/resources/data/anvilcraft/recipe/brass_pressure_plate_from_ingots_brass.json +++ b/src/generated/resources/data/anvilcraft/recipe/brass_pressure_plate_from_ingots_brass.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/brass" - } + "A": "#c:ingots/brass" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:brass_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/bronze_block.json b/src/generated/resources/data/anvilcraft/recipe/bronze_block.json index 22d3cb2a23..1e4e0136be 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bronze_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/bronze_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/bronze" - } + "A": "#c:ingots/bronze" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:bronze_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/bronze_ingot.json b/src/generated/resources/data/anvilcraft/recipe/bronze_ingot.json index 23ad533b0f..2ed03aae60 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bronze_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/bronze_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:bronze_ingot", "key": { - "A": { - "tag": "c:nuggets/bronze" - } + "A": "#c:nuggets/bronze" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:bronze_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/bronze_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/bronze_ingot_from_block.json index 2ab0e1adaa..60ae61ae04 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bronze_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/bronze_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:bronze_ingot", "ingredients": [ - { - "item": "anvilcraft:bronze_block" - } + "anvilcraft:bronze_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/bronze_nugget.json b/src/generated/resources/data/anvilcraft/recipe/bronze_nugget.json index 70c31de597..a0d80fee06 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bronze_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/bronze_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/bronze" - } + "#c:ingots/bronze" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/bronze_pressure_plate_from_ingots_bronze.json b/src/generated/resources/data/anvilcraft/recipe/bronze_pressure_plate_from_ingots_bronze.json index 3af1756749..f08d2ba2dd 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bronze_pressure_plate_from_ingots_bronze.json +++ b/src/generated/resources/data/anvilcraft/recipe/bronze_pressure_plate_from_ingots_bronze.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/bronze" - } + "A": "#c:ingots/bronze" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:bronze_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..e186845e06 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:brown_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:brown_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..843c4fc35e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:brown_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:brown_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_wall.json new file mode 100644 index 0000000000..606a6ab4c5 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/brown_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:brown_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:brown_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/bulging/cement_cauldron.json b/src/generated/resources/data/anvilcraft/recipe/bulging/cement_cauldron.json index a43fcc3540..e9171217c7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bulging/cement_cauldron.json +++ b/src/generated/resources/data/anvilcraft/recipe/bulging/cement_cauldron.json @@ -1,5 +1,6 @@ { "type": "anvilcraft:bulging", + "consume": 1000, "fluid": "minecraft:water", "ingredients": [ { @@ -10,6 +11,7 @@ "items": "anvilcraft:cinerite" } ], + "produce": 1000, "results": [], "transform": "anvilcraft:gray_cement" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/bulging/netherite_upgrade_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/bulging/netherite_upgrade_smithing_template.json new file mode 100644 index 0000000000..7c75749c3b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/bulging/netherite_upgrade_smithing_template.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:bulging", + "fluid": "minecraft:water", + "ingredients": [ + { + "items": "anvilcraft:ember_metal_upgrade_smithing_template" + } + ], + "results": [ + { + "id": "minecraft:netherite_upgrade_smithing_template" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/bulging/prismarine_cluster.json b/src/generated/resources/data/anvilcraft/recipe/bulging/prismarine_cluster.json index af12d2bda8..d68455bf8b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bulging/prismarine_cluster.json +++ b/src/generated/resources/data/anvilcraft/recipe/bulging/prismarine_cluster.json @@ -1,6 +1,6 @@ { "type": "anvilcraft:bulging", - "consume": 333, + "consume": 250, "fluid": "minecraft:powder_snow", "ingredients": [ { diff --git a/src/generated/resources/data/anvilcraft/recipe/bulging/wet_sponge.json b/src/generated/resources/data/anvilcraft/recipe/bulging/wet_sponge.json index 89576b77ad..060f2ae264 100644 --- a/src/generated/resources/data/anvilcraft/recipe/bulging/wet_sponge.json +++ b/src/generated/resources/data/anvilcraft/recipe/bulging/wet_sponge.json @@ -1,6 +1,6 @@ { "type": "anvilcraft:bulging", - "consume": 333, + "consume": 250, "fluid": "minecraft:water", "ingredients": [ { diff --git a/src/generated/resources/data/anvilcraft/recipe/campfire_cooking_bread.json b/src/generated/resources/data/anvilcraft/recipe/campfire_cooking_bread.json index dbd17d32fc..8c9a709c56 100644 --- a/src/generated/resources/data/anvilcraft/recipe/campfire_cooking_bread.json +++ b/src/generated/resources/data/anvilcraft/recipe/campfire_cooking_bread.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 600, "experience": 0.35, - "ingredient": { - "tag": "c:foods/dough" - }, + "ingredient": "#c:foods/dough", "result": { - "count": 1, "id": "minecraft:bread" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/canned_food.json b/src/generated/resources/data/anvilcraft/recipe/canned_food.json index 8974e51ad4..d66d6d54c0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/canned_food.json +++ b/src/generated/resources/data/anvilcraft/recipe/canned_food.json @@ -1,4 +1,3 @@ { - "type": "anvilcraft:canning_food", - "category": "misc" + "type": "anvilcraft:canning_food" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/capacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/capacitor_empty.json index 8d0f224d77..352ebb8e54 100644 --- a/src/generated/resources/data/anvilcraft/recipe/capacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/capacitor_empty.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "tag": "c:plates/copper" - }, - "B": { - "item": "anvilcraft:resin" - } + "A": "#c:plates/copper", + "B": "anvilcraft:resin" }, "pattern": [ "A", @@ -15,7 +11,6 @@ "A" ], "result": { - "count": 1, "id": "anvilcraft:capacitor_empty" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/charge_collector.json b/src/generated/resources/data/anvilcraft/recipe/charge_collector.json index ff56af7002..dd0ad7f151 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charge_collector.json +++ b/src/generated/resources/data/anvilcraft/recipe/charge_collector.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:magnetoelectric_core" - }, - "B": { - "item": "minecraft:copper_ingot" - }, - "C": { - "item": "minecraft:iron_ingot" - } + "A": "anvilcraft:magnetoelectric_core", + "B": "minecraft:copper_ingot", + "C": "minecraft:iron_ingot" }, "pattern": [ " A ", @@ -18,7 +12,6 @@ "CCC" ], "result": { - "count": 1, "id": "anvilcraft:charge_collector" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/charger.json b/src/generated/resources/data/anvilcraft/recipe/charger.json index 446b1f9391..0b2efcad2f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:copper_ingot" - }, - "B": { - "item": "anvilcraft:magnetoelectric_core" - }, - "C": { - "item": "minecraft:iron_ingot" - }, - "D": { - "tag": "c:glass_panes" - } + "A": "minecraft:copper_ingot", + "B": "anvilcraft:magnetoelectric_core", + "C": "minecraft:iron_ingot", + "D": "#c:glass_panes" }, "pattern": [ "ADA", @@ -21,7 +13,6 @@ "CCC" ], "result": { - "count": 1, "id": "anvilcraft:charger" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json index 3707c1d7fc..2e5c1b1ac8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json @@ -1,11 +1,8 @@ { "type": "anvilcraft:charger_charging", - "ingredient": { - "item": "anvilcraft:capacitor_empty" - }, + "ingredient": "anvilcraft:capacitor_empty", "power": -70, "result": { - "count": 1, "id": "anvilcraft:capacitor" }, "time": 1200 diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor_empty.json index 771de0d066..afbf4f5264 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor_empty.json @@ -1,11 +1,8 @@ { "type": "anvilcraft:charger_charging", - "ingredient": { - "item": "anvilcraft:capacitor" - }, + "ingredient": "anvilcraft:capacitor", "power": 64, "result": { - "count": 1, "id": "anvilcraft:capacitor_empty" }, "time": 1200 diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/charged_neutronium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/charged_neutronium_ingot.json index 0e5aee0e94..931ead0fce 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/charged_neutronium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/charged_neutronium_ingot.json @@ -1,11 +1,8 @@ { "type": "anvilcraft:charger_charging", - "ingredient": { - "tag": "anvilcraft:uncharged_neutronium_ingots" - }, + "ingredient": "#anvilcraft:uncharged_neutronium_ingots", "power": -4000, "result": { - "count": 1, "id": "anvilcraft:charged_neutronium_ingot" }, "time": 6000 diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/magnet_ingot.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/magnet_ingot.json index 59f5df37a1..a2a185bf9f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/magnet_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/magnet_ingot.json @@ -1,11 +1,8 @@ { "type": "anvilcraft:charger_charging", - "ingredient": { - "item": "minecraft:iron_ingot" - }, + "ingredient": "minecraft:iron_ingot", "power": -4, "result": { - "count": 1, "id": "anvilcraft:magnet_ingot" }, "time": 40 diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/neutronium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/neutronium_ingot.json index 1a00e1a35c..329d567edb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/neutronium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/neutronium_ingot.json @@ -1,11 +1,8 @@ { "type": "anvilcraft:charger_charging", - "ingredient": { - "item": "anvilcraft:charged_neutronium_ingot" - }, + "ingredient": "anvilcraft:charged_neutronium_ingot", "power": 3200, "result": { - "count": 1, "id": "anvilcraft:neutronium_ingot" }, "time": 6000 diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json index de40489879..3b4d6472ad 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json @@ -1,11 +1,8 @@ { "type": "anvilcraft:charger_charging", - "ingredient": { - "item": "anvilcraft:supercapacitor_empty" - }, + "ingredient": "anvilcraft:supercapacitor_empty", "power": -700, "result": { - "count": 1, "id": "anvilcraft:supercapacitor" }, "time": 2400 diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor_empty.json index 64d0f90c4d..0da7cad491 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor_empty.json @@ -1,11 +1,8 @@ { "type": "anvilcraft:charger_charging", - "ingredient": { - "item": "anvilcraft:supercapacitor" - }, + "ingredient": "anvilcraft:supercapacitor", "power": 640, "result": { - "count": 1, "id": "anvilcraft:supercapacitor_empty" }, "time": 2400 diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_from_discharger.json b/src/generated/resources/data/anvilcraft/recipe/charger_from_discharger.json index e351023a37..ff4f7aa56e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_from_discharger.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_from_discharger.json @@ -2,12 +2,9 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:discharger" - } + "anvilcraft:discharger" ], "result": { - "count": 1, "id": "anvilcraft:charger" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/chipped_anvil.json b/src/generated/resources/data/anvilcraft/recipe/chipped_anvil.json index b76348b1cd..779f23b82a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chipped_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/chipped_anvil.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:iron_block" - }, - "B": { - "item": "minecraft:iron_ingot" - } + "A": "minecraft:iron_block", + "B": "minecraft:iron_ingot" }, "pattern": [ "AAB", @@ -15,7 +11,6 @@ "BBB" ], "result": { - "count": 1, "id": "minecraft:chipped_anvil" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/chipped_anvil_9.json b/src/generated/resources/data/anvilcraft/recipe/chipped_anvil_9.json index ac405edd5d..776dae06c2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chipped_anvil_9.json +++ b/src/generated/resources/data/anvilcraft/recipe/chipped_anvil_9.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:heavy_iron_block" - }, - "B": { - "item": "minecraft:iron_block" - } + "A": "anvilcraft:heavy_iron_block", + "B": "minecraft:iron_block" }, "pattern": [ "AAB", diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate.json b/src/generated/resources/data/anvilcraft/recipe/chocolate.json index 477ef93776..3f9e0c4dbb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate.json +++ b/src/generated/resources/data/anvilcraft/recipe/chocolate.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:cocoa_liquor" - }, - "B": { - "item": "anvilcraft:cocoa_butter" - }, - "C": { - "item": "anvilcraft:cream" - }, - "D": { - "item": "minecraft:sugar" - } + "A": "anvilcraft:cocoa_liquor", + "B": "anvilcraft:cocoa_butter", + "C": "anvilcraft:cream", + "D": "minecraft:sugar" }, "pattern": [ "ABA", diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_black.json b/src/generated/resources/data/anvilcraft/recipe/chocolate_black.json index ec50281ee0..1c88fa69b6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_black.json +++ b/src/generated/resources/data/anvilcraft/recipe/chocolate_black.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:cocoa_liquor" - }, - "B": { - "item": "anvilcraft:cocoa_butter" - }, - "C": { - "item": "minecraft:sugar" - } + "A": "anvilcraft:cocoa_liquor", + "B": "anvilcraft:cocoa_butter", + "C": "minecraft:sugar" }, "pattern": [ "AAA", diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_block.json b/src/generated/resources/data/anvilcraft/recipe/chocolate_block.json index 95c0115f54..40f065a149 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/chocolate_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:chocolate" - } + "A": "anvilcraft:chocolate" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:chocolate_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_from_block.json b/src/generated/resources/data/anvilcraft/recipe/chocolate_from_block.json index 2d2bb94102..09cd6767c6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/chocolate_from_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:chocolate_block" - } + "anvilcraft:chocolate_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_slab.json b/src/generated/resources/data/anvilcraft/recipe/chocolate_slab.json index 2895588230..babbd82b9b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/chocolate_slab.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:chocolate_block" - } + "A": "anvilcraft:chocolate_block" }, "pattern": [ "AAA" diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_stairs.json b/src/generated/resources/data/anvilcraft/recipe/chocolate_stairs.json index 67424fa6d9..17ca9676eb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_stairs.json +++ b/src/generated/resources/data/anvilcraft/recipe/chocolate_stairs.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:chocolate_block" - } + "A": "anvilcraft:chocolate_block" }, "pattern": [ "A ", diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_white.json b/src/generated/resources/data/anvilcraft/recipe/chocolate_white.json index ff5dd4f567..b6b7953704 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_white.json +++ b/src/generated/resources/data/anvilcraft/recipe/chocolate_white.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:cocoa_butter" - }, - "B": { - "item": "anvilcraft:cream" - }, - "C": { - "item": "minecraft:sugar" - } + "A": "anvilcraft:cocoa_butter", + "B": "anvilcraft:cream", + "C": "minecraft:sugar" }, "pattern": [ "AAA", diff --git a/src/generated/resources/data/anvilcraft/recipe/chute.json b/src/generated/resources/data/anvilcraft/recipe/chute.json index 8c514d4cf6..733e86e1f8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chute.json +++ b/src/generated/resources/data/anvilcraft/recipe/chute.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:iron_ingot" - }, - "B": { - "item": "minecraft:dropper" - } + "A": "minecraft:iron_ingot", + "B": "minecraft:dropper" }, "pattern": [ "A A", diff --git a/src/generated/resources/data/anvilcraft/recipe/circuit_board.json b/src/generated/resources/data/anvilcraft/recipe/circuit_board.json index f31774c80a..a16b381fe6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/circuit_board.json +++ b/src/generated/resources/data/anvilcraft/recipe/circuit_board.json @@ -2,21 +2,12 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:plates/copper" - }, - { - "item": "anvilcraft:hardend_resin" - }, - { - "item": "anvilcraft:hardend_resin" - }, - { - "item": "anvilcraft:hardend_resin" - } + "#c:plates/copper", + "anvilcraft:hardend_resin", + "anvilcraft:hardend_resin", + "anvilcraft:hardend_resin" ], "result": { - "count": 1, "id": "anvilcraft:circuit_board" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/cocoa_liquor.json b/src/generated/resources/data/anvilcraft/recipe/cocoa_liquor.json index 0b1e132eff..bc3fff332a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/cocoa_liquor.json +++ b/src/generated/resources/data/anvilcraft/recipe/cocoa_liquor.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:cocoa_powder" - }, - { - "item": "anvilcraft:cocoa_powder" - }, - { - "item": "anvilcraft:cocoa_butter" - } + "anvilcraft:cocoa_powder", + "anvilcraft:cocoa_powder", + "anvilcraft:cocoa_butter" ], "result": { "count": 2, diff --git a/src/generated/resources/data/anvilcraft/recipe/comparator.json b/src/generated/resources/data/anvilcraft/recipe/comparator.json index 0d6ab31d4a..a0780a23dd 100644 --- a/src/generated/resources/data/anvilcraft/recipe/comparator.json +++ b/src/generated/resources/data/anvilcraft/recipe/comparator.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "B": { - "item": "anvilcraft:hardend_resin" - }, - "Q": { - "item": "minecraft:quartz" - }, - "T": { - "item": "minecraft:redstone_torch" - } + "B": "anvilcraft:hardend_resin", + "Q": "minecraft:quartz", + "T": "minecraft:redstone_torch" }, "pattern": [ " T ", @@ -18,7 +12,6 @@ "BBB" ], "result": { - "count": 1, "id": "minecraft:comparator" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_black.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_black.json index 0a158d0afe..4a32fb36fe 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_black.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_black.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_black" + "id": "anvilcraft:black_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_blue.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_blue.json index bdefe656d1..8937747430 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_blue.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_blue.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_blue" + "id": "anvilcraft:blue_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_brown.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_brown.json index 1cb3fb6e46..a2af309756 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_brown.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_brown.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_brown" + "id": "anvilcraft:brown_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_cyan.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_cyan.json index a97995e442..fe9d99a05b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_cyan.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_cyan.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_cyan" + "id": "anvilcraft:cyan_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_gray.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_gray.json index ff648f8400..32b584ad56 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_gray.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_gray.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_gray" + "id": "anvilcraft:gray_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_green.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_green.json index e8a4513afa..7537173245 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_green.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_green.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_green" + "id": "anvilcraft:green_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_blue.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_blue.json index faaee8432d..f480b2aadb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_blue.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_blue.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_light_blue" + "id": "anvilcraft:light_blue_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_gray.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_gray.json index d65157d21c..4780f2cc88 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_gray.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_light_gray.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_light_gray" + "id": "anvilcraft:light_gray_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_lime.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_lime.json index 14662afddd..764ad26474 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_lime.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_lime.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_lime" + "id": "anvilcraft:lime_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_magenta.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_magenta.json index d4919d5b23..e370e21805 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_magenta.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_magenta.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_magenta" + "id": "anvilcraft:magenta_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_orange.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_orange.json index 39edff0455..e0f1e0f29b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_orange.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_orange.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_orange" + "id": "anvilcraft:orange_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_pink.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_pink.json index 8477a5f55c..7a14ef5301 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_pink.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_pink.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_pink" + "id": "anvilcraft:pink_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_purple.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_purple.json index 0380b9784b..29e0df43c9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_purple.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_purple.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_purple" + "id": "anvilcraft:purple_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_red.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_red.json index 127cb50185..7fc5c73353 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_red.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_red.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_red" + "id": "anvilcraft:red_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_white.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_white.json index 6d71993fa9..1d29ea46fc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_white.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_white.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_white" + "id": "anvilcraft:white_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_yellow.json b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_yellow.json index 60dbbeb826..83358ee1e0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_yellow.json +++ b/src/generated/resources/data/anvilcraft/recipe/concrete/anvilcraft_reinforced_concrete_yellow.json @@ -18,7 +18,7 @@ "results": [ { "count": 16, - "id": "anvilcraft:reinforced_concrete_yellow" + "id": "anvilcraft:yellow_reinforced_concrete" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/confinement_chamber.json b/src/generated/resources/data/anvilcraft/recipe/confinement_chamber.json index eb09d93678..e03c7bd754 100644 --- a/src/generated/resources/data/anvilcraft/recipe/confinement_chamber.json +++ b/src/generated/resources/data/anvilcraft/recipe/confinement_chamber.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:transcendium_nugget" - }, - "B": { - "item": "anvilcraft:magnet_ingot" - } + "A": "anvilcraft:transcendium_nugget", + "B": "anvilcraft:magnet_ingot" }, "pattern": [ "ABA", @@ -15,7 +11,6 @@ "ABA" ], "result": { - "count": 1, "id": "anvilcraft:confinement_chamber" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/controllable_sand.json b/src/generated/resources/data/anvilcraft/recipe/controllable_sand.json index 5f37da6011..6a1674e4d9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/controllable_sand.json +++ b/src/generated/resources/data/anvilcraft/recipe/controllable_sand.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "L": { - "item": "anvilcraft:levitation_powder" - }, - "R": { - "item": "minecraft:redstone" - }, - "S": { - "tag": "minecraft:sand" - } + "L": "anvilcraft:levitation_powder", + "R": "minecraft:redstone", + "S": "#minecraft:sand" }, "pattern": [ "LRL", @@ -18,7 +12,6 @@ "LRL" ], "result": { - "count": 1, "id": "anvilcraft:controllable_sand" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/cooling/cooling_ember_metal_upgrade_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/cooling/cooling_ember_metal_upgrade_smithing_template.json deleted file mode 100644 index 9410b03f82..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/cooling/cooling_ember_metal_upgrade_smithing_template.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "type": "anvillib_recipe:in_world_recipe", - "compatible": true, - "conflicting": [ - { - "type": "anvillib_recipe:has_item_ingredient", - "item": { - "items": "anvilcraft:ember_metal_upgrade_smithing_template" - }, - "offset": [ - 0.0, - 0.0, - 0.0 - ], - "range": [ - 1.0, - 1.0, - 1.0 - ] - } - ], - "icon": { - "count": 1, - "id": "minecraft:anvil" - }, - "non_conflicting": [ - { - "type": "anvillib_recipe:has_block", - "offset": [ - 0.0, - 0.0, - 0.0 - ], - "predicate": { - "blocks": [ - "minecraft:water", - "minecraft:water_cauldron" - ] - } - } - ], - "outcomes": [ - { - "type": "anvillib_recipe:spawn_item", - "item": "minecraft:netherite_upgrade_smithing_template", - "offset": [ - 0.0, - 0.0, - 0.0 - ] - } - ], - "priority": 4, - "trigger": "anvillib_recipe:item_into_block" -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/copper_ingot_from_nugget.json b/src/generated/resources/data/anvilcraft/recipe/copper_ingot_from_nugget.json index 4d14395f14..1ca6c72361 100644 --- a/src/generated/resources/data/anvilcraft/recipe/copper_ingot_from_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/copper_ingot_from_nugget.json @@ -2,36 +2,17 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - }, - { - "item": "anvilcraft:copper_nugget" - } + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget", + "anvilcraft:copper_nugget" ], "result": { - "count": 1, "id": "minecraft:copper_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/copper_nugget.json b/src/generated/resources/data/anvilcraft/recipe/copper_nugget.json index f44a0cce42..143d2e271b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/copper_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/copper_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "minecraft:copper_ingot" - } + "minecraft:copper_ingot" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/copper_pressure_plate_from_copper_ingot.json b/src/generated/resources/data/anvilcraft/recipe/copper_pressure_plate_from_copper_ingot.json index c9add08acf..e331c1b7c7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/copper_pressure_plate_from_copper_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/copper_pressure_plate_from_copper_ingot.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "minecraft:copper_ingot" - } + "A": "minecraft:copper_ingot" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:copper_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/crab_trap.json b/src/generated/resources/data/anvilcraft/recipe/crab_trap.json index 73c193b5ba..bdb2920a41 100644 --- a/src/generated/resources/data/anvilcraft/recipe/crab_trap.json +++ b/src/generated/resources/data/anvilcraft/recipe/crab_trap.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:stick" - }, - "B": { - "item": "minecraft:string" - } + "A": "minecraft:stick", + "B": "minecraft:string" }, "pattern": [ "ABA", @@ -15,7 +11,6 @@ "ABA" ], "result": { - "count": 1, "id": "anvilcraft:crab_trap" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/creamy_bread_roll.json b/src/generated/resources/data/anvilcraft/recipe/creamy_bread_roll.json index 398e40bb3f..ffa6483fa1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/creamy_bread_roll.json +++ b/src/generated/resources/data/anvilcraft/recipe/creamy_bread_roll.json @@ -2,18 +2,11 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "minecraft:bread" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "anvilcraft:cream" - } + "minecraft:bread", + "minecraft:sugar", + "anvilcraft:cream" ], "result": { - "count": 1, "id": "anvilcraft:creamy_bread_roll" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_block.json b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_block.json index 130b169dcd..1cb9bddd1b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:cursed_gold_ingot" - } + "A": "anvilcraft:cursed_gold_ingot" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:cursed_gold_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_block.json b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_block.json index c13bb83fa8..01ebcc9a90 100644 --- a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:cursed_gold_ingot", "ingredients": [ - { - "item": "anvilcraft:cursed_gold_block" - } + "anvilcraft:cursed_gold_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_nugget.json b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_nugget.json index 90adeced8c..f164878e27 100644 --- a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_ingot_from_cursed_gold_nugget.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:cursed_gold_ingot", "key": { - "A": { - "item": "anvilcraft:cursed_gold_nugget" - } + "A": "anvilcraft:cursed_gold_nugget" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:cursed_gold_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_nugget.json b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_nugget.json index ae61178b3a..82141de970 100644 --- a/src/generated/resources/data/anvilcraft/recipe/cursed_gold_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/cursed_gold_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:cursed_gold_ingot" - } + "anvilcraft:cursed_gold_ingot" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..93728336e7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:cyan_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:cyan_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..a0534a0a5a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:cyan_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:cyan_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_wall.json new file mode 100644 index 0000000000..c6c4032ad0 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/cyan_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:cyan_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:cyan_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/damaged_anvil.json b/src/generated/resources/data/anvilcraft/recipe/damaged_anvil.json index 1eaadb8620..8026f1147c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/damaged_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/damaged_anvil.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:iron_block" - }, - "B": { - "item": "minecraft:iron_ingot" - } + "A": "minecraft:iron_block", + "B": "minecraft:iron_ingot" }, "pattern": [ "BAB", @@ -15,7 +11,6 @@ "BBB" ], "result": { - "count": 1, "id": "minecraft:damaged_anvil" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/damaged_anvil_9.json b/src/generated/resources/data/anvilcraft/recipe/damaged_anvil_9.json index fcaddfb166..9cc3134cf7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/damaged_anvil_9.json +++ b/src/generated/resources/data/anvilcraft/recipe/damaged_anvil_9.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:heavy_iron_block" - }, - "B": { - "item": "minecraft:iron_block" - } + "A": "anvilcraft:heavy_iron_block", + "B": "minecraft:iron_block" }, "pattern": [ "BAB", diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/amethyst_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/amethyst_weapons_and_tools.json index c36e246675..534ffa869c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/amethyst_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/amethyst_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "anvilcraft:amethyst_sword", - "anvilcraft:amethyst_axe", - "anvilcraft:amethyst_pickaxe", - "anvilcraft:amethyst_shovel", - "anvilcraft:amethyst_hoe" - ] + { + "id": "anvilcraft:amethyst_sword" + }, + { + "id": "anvilcraft:amethyst_axe" + }, + { + "id": "anvilcraft:amethyst_pickaxe" + }, + { + "id": "anvilcraft:amethyst_shovel" + }, + { + "id": "anvilcraft:amethyst_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/bowlikes.json b/src/generated/resources/data/anvilcraft/recipe/deformation/bowlikes.json index 383cbc99b7..bf7a49d474 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/bowlikes.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/bowlikes.json @@ -1,7 +1,17 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:bow", - "minecraft:crossbow" - ] + { + "id": "minecraft:bow" + }, + { + "id": "minecraft:crossbow" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/chainmail_armors.json b/src/generated/resources/data/anvilcraft/recipe/deformation/chainmail_armors.json index f55fc89186..fb438ff8bb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/chainmail_armors.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/chainmail_armors.json @@ -1,9 +1,23 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:chainmail_helmet", - "minecraft:chainmail_chestplate", - "minecraft:chainmail_leggings", - "minecraft:chainmail_boots" - ] + { + "id": "minecraft:chainmail_helmet" + }, + { + "id": "minecraft:chainmail_chestplate" + }, + { + "id": "minecraft:chainmail_leggings" + }, + { + "id": "minecraft:chainmail_boots" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_armors.json b/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_armors.json index d6c0a01331..ec767305e9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_armors.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_armors.json @@ -1,9 +1,23 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:diamond_helmet", - "minecraft:diamond_chestplate", - "minecraft:diamond_leggings", - "minecraft:diamond_boots" - ] + { + "id": "minecraft:diamond_helmet" + }, + { + "id": "minecraft:diamond_chestplate" + }, + { + "id": "minecraft:diamond_leggings" + }, + { + "id": "minecraft:diamond_boots" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_weapons_and_tools.json index f0ac6efd6d..c125d9c103 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/diamond_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:diamond_sword", - "minecraft:diamond_axe", - "minecraft:diamond_pickaxe", - "minecraft:diamond_shovel", - "minecraft:diamond_hoe" - ] + { + "id": "minecraft:diamond_sword" + }, + { + "id": "minecraft:diamond_axe" + }, + { + "id": "minecraft:diamond_pickaxe" + }, + { + "id": "minecraft:diamond_shovel" + }, + { + "id": "minecraft:diamond_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/ember_metal_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/ember_metal_weapons_and_tools.json index 0ce881d27e..429361b463 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/ember_metal_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/ember_metal_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "anvilcraft:ember_metal_sword", - "anvilcraft:ember_metal_axe", - "anvilcraft:ember_metal_pickaxe", - "anvilcraft:ember_metal_shovel", - "anvilcraft:ember_metal_hoe" - ] + { + "id": "anvilcraft:ember_metal_sword" + }, + { + "id": "anvilcraft:ember_metal_axe" + }, + { + "id": "anvilcraft:ember_metal_pickaxe" + }, + { + "id": "anvilcraft:ember_metal_shovel" + }, + { + "id": "anvilcraft:ember_metal_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/frost_metal_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/frost_metal_weapons_and_tools.json index 56830d8256..581aeb717d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/frost_metal_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/frost_metal_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "anvilcraft:frost_metal_sword", - "anvilcraft:frost_metal_axe", - "anvilcraft:frost_metal_pickaxe", - "anvilcraft:frost_metal_shovel", - "anvilcraft:frost_metal_hoe" - ] + { + "id": "anvilcraft:frost_metal_sword" + }, + { + "id": "anvilcraft:frost_metal_axe" + }, + { + "id": "anvilcraft:frost_metal_pickaxe" + }, + { + "id": "anvilcraft:frost_metal_shovel" + }, + { + "id": "anvilcraft:frost_metal_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/golden_armors.json b/src/generated/resources/data/anvilcraft/recipe/deformation/golden_armors.json index 904f7f6f45..43a54583e6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/golden_armors.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/golden_armors.json @@ -1,9 +1,23 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:golden_helmet", - "minecraft:golden_chestplate", - "minecraft:golden_leggings", - "minecraft:golden_boots" - ] + { + "id": "minecraft:golden_helmet" + }, + { + "id": "minecraft:golden_chestplate" + }, + { + "id": "minecraft:golden_leggings" + }, + { + "id": "minecraft:golden_boots" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/golden_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/golden_weapons_and_tools.json index a55d692e02..fbee935693 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/golden_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/golden_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:golden_sword", - "minecraft:golden_axe", - "minecraft:golden_pickaxe", - "minecraft:golden_shovel", - "minecraft:golden_hoe" - ] + { + "id": "minecraft:golden_sword" + }, + { + "id": "minecraft:golden_axe" + }, + { + "id": "minecraft:golden_pickaxe" + }, + { + "id": "minecraft:golden_shovel" + }, + { + "id": "minecraft:golden_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/iron_armors.json b/src/generated/resources/data/anvilcraft/recipe/deformation/iron_armors.json index 3261b8c0ab..b20c68bdb9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/iron_armors.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/iron_armors.json @@ -1,9 +1,23 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:iron_helmet", - "minecraft:iron_chestplate", - "minecraft:iron_leggings", - "minecraft:iron_boots" - ] + { + "id": "minecraft:iron_helmet" + }, + { + "id": "minecraft:iron_chestplate" + }, + { + "id": "minecraft:iron_leggings" + }, + { + "id": "minecraft:iron_boots" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/iron_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/iron_weapons_and_tools.json index a2ca27a2fe..d43a2e867e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/iron_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/iron_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:iron_sword", - "minecraft:iron_axe", - "minecraft:iron_pickaxe", - "minecraft:iron_shovel", - "minecraft:iron_hoe" - ] + { + "id": "minecraft:iron_sword" + }, + { + "id": "minecraft:iron_axe" + }, + { + "id": "minecraft:iron_pickaxe" + }, + { + "id": "minecraft:iron_shovel" + }, + { + "id": "minecraft:iron_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_armors.json b/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_armors.json index a46b877163..119af4db23 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_armors.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_armors.json @@ -1,9 +1,23 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:netherite_helmet", - "minecraft:netherite_chestplate", - "minecraft:netherite_leggings", - "minecraft:netherite_boots" - ] + { + "id": "minecraft:netherite_helmet" + }, + { + "id": "minecraft:netherite_chestplate" + }, + { + "id": "minecraft:netherite_leggings" + }, + { + "id": "minecraft:netherite_boots" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_weapons_and_tools.json index 22a2f7adcd..461063fe67 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/netherite_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:netherite_sword", - "minecraft:netherite_axe", - "minecraft:netherite_pickaxe", - "minecraft:netherite_shovel", - "minecraft:netherite_hoe" - ] + { + "id": "minecraft:netherite_sword" + }, + { + "id": "minecraft:netherite_axe" + }, + { + "id": "minecraft:netherite_pickaxe" + }, + { + "id": "minecraft:netherite_shovel" + }, + { + "id": "minecraft:netherite_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/royal_steel_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/royal_steel_weapons_and_tools.json index ad30a85ecc..da29746752 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/royal_steel_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/royal_steel_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "anvilcraft:royal_steel_sword", - "anvilcraft:royal_steel_axe", - "anvilcraft:royal_steel_pickaxe", - "anvilcraft:royal_steel_shovel", - "anvilcraft:royal_steel_hoe" - ] + { + "id": "anvilcraft:royal_steel_sword" + }, + { + "id": "anvilcraft:royal_steel_axe" + }, + { + "id": "anvilcraft:royal_steel_pickaxe" + }, + { + "id": "anvilcraft:royal_steel_shovel" + }, + { + "id": "anvilcraft:royal_steel_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/stone_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/stone_weapons_and_tools.json index 91edf01e52..f364fe2910 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/stone_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/stone_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:stone_sword", - "minecraft:stone_axe", - "minecraft:stone_pickaxe", - "minecraft:stone_shovel", - "minecraft:stone_hoe" - ] + { + "id": "minecraft:stone_sword" + }, + { + "id": "minecraft:stone_axe" + }, + { + "id": "minecraft:stone_pickaxe" + }, + { + "id": "minecraft:stone_shovel" + }, + { + "id": "minecraft:stone_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation/wooden_weapons_and_tools.json b/src/generated/resources/data/anvilcraft/recipe/deformation/wooden_weapons_and_tools.json index ffe34d633d..105c6f1a19 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation/wooden_weapons_and_tools.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation/wooden_weapons_and_tools.json @@ -1,10 +1,26 @@ { "type": "anvilcraft:deformation", "inputs": [ - "minecraft:wooden_sword", - "minecraft:wooden_axe", - "minecraft:wooden_pickaxe", - "minecraft:wooden_shovel", - "minecraft:wooden_hoe" - ] + { + "id": "minecraft:wooden_sword" + }, + { + "id": "minecraft:wooden_axe" + }, + { + "id": "minecraft:wooden_pickaxe" + }, + { + "id": "minecraft:wooden_shovel" + }, + { + "id": "minecraft:wooden_hoe" + } + ], + "material": { + "items": "anvilcraft:frost_metal_ingot" + }, + "template": { + "items": "anvilcraft:deformation_smithing_template" + } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/deformation_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/deformation_smithing_template.json index b71cfd87b6..5594592dca 100644 --- a/src/generated/resources/data/anvilcraft/recipe/deformation_smithing_template.json +++ b/src/generated/resources/data/anvilcraft/recipe/deformation_smithing_template.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "E": { - "item": "anvilcraft:earth_core_shard" - }, - "T": { - "tag": "anvilcraft:templates" - }, - "V": { - "item": "anvilcraft:void_matter" - } + "E": "anvilcraft:earth_core_shard", + "T": "#anvilcraft:templates", + "V": "anvilcraft:void_matter" }, "pattern": [ "VVV", @@ -18,7 +12,6 @@ "EEE" ], "result": { - "count": 1, "id": "anvilcraft:deformation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/detector_sliding_rail.json b/src/generated/resources/data/anvilcraft/recipe/detector_sliding_rail.json index 4e7bed01ff..a773bc82d2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/detector_sliding_rail.json +++ b/src/generated/resources/data/anvilcraft/recipe/detector_sliding_rail.json @@ -3,16 +3,10 @@ "category": "redstone", "key": { "P": [ - { - "item": "minecraft:stone_pressure_plate" - }, - { - "item": "minecraft:polished_blackstone_pressure_plate" - } + "minecraft:stone_pressure_plate", + "minecraft:polished_blackstone_pressure_plate" ], - "S": { - "item": "anvilcraft:sliding_rail" - } + "S": "anvilcraft:sliding_rail" }, "pattern": [ "SSS", diff --git a/src/generated/resources/data/anvilcraft/recipe/discharger_from_charger.json b/src/generated/resources/data/anvilcraft/recipe/discharger_from_charger.json index 275600b3b3..3b18ada7d4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/discharger_from_charger.json +++ b/src/generated/resources/data/anvilcraft/recipe/discharger_from_charger.json @@ -2,12 +2,9 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:charger" - } + "anvilcraft:charger" ], "result": { - "count": 1, "id": "anvilcraft:discharger" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/disk.json b/src/generated/resources/data/anvilcraft/recipe/disk.json index 4ce23123db..45a9c52483 100644 --- a/src/generated/resources/data/anvilcraft/recipe/disk.json +++ b/src/generated/resources/data/anvilcraft/recipe/disk.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "anvilcraft:hardend_resin" - }, - "B": { - "item": "minecraft:iron_ingot" - }, - "C": { - "item": "anvilcraft:magnet_ingot" - } + "A": "anvilcraft:hardend_resin", + "B": "minecraft:iron_ingot", + "C": "anvilcraft:magnet_ingot" }, "pattern": [ "ABA", @@ -18,7 +12,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:disk" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/dragon_rod.json b/src/generated/resources/data/anvilcraft/recipe/dragon_rod.json index 66f0621605..b0c0b7013f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/dragon_rod.json @@ -2,15 +2,10 @@ "type": "minecraft:crafting_shapeless", "category": "equipment", "ingredients": [ - { - "item": "anvilcraft:block_devourer" - }, - { - "item": "anvilcraft:anvil_hammer" - } + "anvilcraft:block_devourer", + "anvilcraft:anvil_hammer" ], "result": { - "count": 1, "id": "anvilcraft:dragon_rod" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/earth_core_shard.json b/src/generated/resources/data/anvilcraft/recipe/earth_core_shard.json index d5745b3044..7a645a4e14 100644 --- a/src/generated/resources/data/anvilcraft/recipe/earth_core_shard.json +++ b/src/generated/resources/data/anvilcraft/recipe/earth_core_shard.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:earth_core_shard_block" - } + "anvilcraft:earth_core_shard_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/earth_core_shard_block.json b/src/generated/resources/data/anvilcraft/recipe/earth_core_shard_block.json index 78caf5ecb2..ad6859a771 100644 --- a/src/generated/resources/data/anvilcraft/recipe/earth_core_shard_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/earth_core_shard_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:earth_core_shard" - } + "A": "anvilcraft:earth_core_shard" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:earth_core_shard_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/eight_to_one_smithing/multitool.json b/src/generated/resources/data/anvilcraft/recipe/eight_to_one_smithing/multitool.json index 37a89cb5b2..62e7c60687 100644 --- a/src/generated/resources/data/anvilcraft/recipe/eight_to_one_smithing/multitool.json +++ b/src/generated/resources/data/anvilcraft/recipe/eight_to_one_smithing/multitool.json @@ -36,47 +36,49 @@ { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 1 + "input": "input.1" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 2 + "input": "input.2" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 3 + "input": "input.3" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 4 + "input": "input.4" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 5 + "input": "input.5" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 6 + "input": "input.6" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 7 + "input": "input.7" } ] } ], - "result": "anvilcraft:multitool", + "result": { + "id": "anvilcraft:multitool" + }, "template": { "items": "anvilcraft:eight_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/ember_dragon_rod.json b/src/generated/resources/data/anvilcraft/recipe/ember_dragon_rod.json index b348c7e1f9..bc95572750 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ember_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/ember_dragon_rod.json @@ -2,15 +2,10 @@ "type": "minecraft:crafting_shapeless", "category": "equipment", "ingredients": [ - { - "item": "anvilcraft:block_devourer" - }, - { - "item": "anvilcraft:ember_anvil_hammer" - } + "anvilcraft:block_devourer", + "anvilcraft:ember_anvil_hammer" ], "result": { - "count": 1, "id": "anvilcraft:ember_dragon_rod" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/ember_metal_block.json index 44bdf5cda7..ebbacfe211 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/ember_metal_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:ember_metal_ingot" - } + "A": "anvilcraft:ember_metal_ingot" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:ember_metal_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot.json b/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot.json index be873eec23..563e27633b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:ember_metal_ingot", "key": { - "A": { - "item": "anvilcraft:ember_metal_nugget" - } + "A": "anvilcraft:ember_metal_nugget" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:ember_metal_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot_from_block.json index d1c4617f75..03dbc51ea6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/ember_metal_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:ember_metal_ingot", "ingredients": [ - { - "item": "anvilcraft:ember_metal_block" - } + "anvilcraft:ember_metal_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/ember_metal_nugget_from_ingot.json b/src/generated/resources/data/anvilcraft/recipe/ember_metal_nugget_from_ingot.json index f49cf7a649..ccd9f444d0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ember_metal_nugget_from_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/ember_metal_nugget_from_ingot.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:ember_metal_ingot" - } + "anvilcraft:ember_metal_ingot" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json b/src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json new file mode 100644 index 0000000000..9d023e1890 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "A": "anvilcraft:ionocraft", + "B": "anvilcraft:capacitor_empty", + "C": "minecraft:iron_ingot", + "D": "minecraft:piston", + "E": "anvilcraft:ruby" + }, + "pattern": [ + "CDC", + "ABA", + "AEA" + ], + "result": { + "id": "anvilcraft:propel_piston" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/anvil_railgun.json b/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/anvil_railgun.json index 755ce47951..cfd44c2691 100644 --- a/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/anvil_railgun.json +++ b/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/anvil_railgun.json @@ -11,7 +11,6 @@ } ], "result": { - "count": 1, "id": "anvilcraft:anvil_railgun" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/spectral_weapon_launcher.json b/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/spectral_weapon_launcher.json index 47769439d8..1ffb50986d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/spectral_weapon_launcher.json +++ b/src/generated/resources/data/anvilcraft/recipe/energy_weapon_make/spectral_weapon_launcher.json @@ -10,7 +10,6 @@ } ], "result": { - "count": 1, "id": "anvilcraft:spectral_weapon_launcher" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/energy_weapon_platform.json b/src/generated/resources/data/anvilcraft/recipe/energy_weapon_platform.json index c7944e6b66..6d85207097 100644 --- a/src/generated/resources/data/anvilcraft/recipe/energy_weapon_platform.json +++ b/src/generated/resources/data/anvilcraft/recipe/energy_weapon_platform.json @@ -3,21 +3,11 @@ "category": "misc", "group": "anvilcraft:energy_weapon_platform", "key": { - "A": { - "item": "minecraft:anvil" - }, - "C": { - "item": "anvilcraft:space_overcompressor" - }, - "F": { - "item": "minecraft:smithing_table" - }, - "P": { - "item": "anvilcraft:processor" - }, - "S": { - "item": "anvilcraft:supercapacitor" - } + "A": "minecraft:anvil", + "C": "anvilcraft:space_overcompressor", + "F": "minecraft:smithing_table", + "P": "anvilcraft:processor", + "S": "anvilcraft:supercapacitor" }, "pattern": [ "ASS", @@ -25,7 +15,6 @@ "FPC" ], "result": { - "count": 1, "id": "anvilcraft:energy_weapon_platform" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/exp_gem.json b/src/generated/resources/data/anvilcraft/recipe/exp_gem.json index 8f11c8cc13..6e006e006c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/exp_gem.json +++ b/src/generated/resources/data/anvilcraft/recipe/exp_gem.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:exp_gem_block" - } + "anvilcraft:exp_gem_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/exp_gem_block.json b/src/generated/resources/data/anvilcraft/recipe/exp_gem_block.json index 332a172bfb..bb39adda4b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/exp_gem_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/exp_gem_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:exp_gem" - } + "A": "anvilcraft:exp_gem" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:exp_gem_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/ferrite_core_magnet_block.json b/src/generated/resources/data/anvilcraft/recipe/ferrite_core_magnet_block.json index 6ce266ccd3..04bfd99875 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ferrite_core_magnet_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/ferrite_core_magnet_block.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "anvilcraft:magnet_ingot" - }, - "B": { - "tag": "c:ingots/iron" - } + "A": "anvilcraft:magnet_ingot", + "B": "#c:ingots/iron" }, "pattern": [ "AAA", @@ -15,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:ferrite_core_magnet_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/filter.json b/src/generated/resources/data/anvilcraft/recipe/filter.json index d9204b1619..2e09dec43b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/filter.json +++ b/src/generated/resources/data/anvilcraft/recipe/filter.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "anvilcraft:hardend_resin" - }, - "B": { - "item": "minecraft:hopper" - }, - "C": { - "item": "anvilcraft:circuit_board" - } + "A": "anvilcraft:hardend_resin", + "B": "minecraft:hopper", + "C": "anvilcraft:circuit_board" }, "pattern": [ "ACA", @@ -18,33 +12,6 @@ "AAA" ], "result": { - "components": { - "anvilcraft:filter_contents": { - "black_list": false, - "include_components": false, - "list": [ - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {} - ] - } - }, - "count": 1, "id": "anvilcraft:filter" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/fish_tank.json b/src/generated/resources/data/anvilcraft/recipe/fish_tank.json index b34385b016..1877125d68 100644 --- a/src/generated/resources/data/anvilcraft/recipe/fish_tank.json +++ b/src/generated/resources/data/anvilcraft/recipe/fish_tank.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:iron_ingot" - }, - "B": { - "tag": "c:glass_panes" - } + "A": "minecraft:iron_ingot", + "B": "#c:glass_panes" }, "pattern": [ "A A", @@ -15,7 +11,6 @@ "BBB" ], "result": { - "count": 1, "id": "anvilcraft:fish_tank" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/flint_block.json b/src/generated/resources/data/anvilcraft/recipe/flint_block.json index 4cc1deeea0..8a1ab98a40 100644 --- a/src/generated/resources/data/anvilcraft/recipe/flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/flint_block.json @@ -2,36 +2,17 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - }, - { - "item": "minecraft:flint" - } + "minecraft:flint", + "minecraft:flint", + "minecraft:flint", + "minecraft:flint", + "minecraft:flint", + "minecraft:flint", + "minecraft:flint", + "minecraft:flint", + "minecraft:flint" ], "result": { - "count": 1, "id": "anvilcraft:flint_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/flint_from_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/flint_from_flint_block.json index 26bd19e3d8..6cf0c33ee5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/flint_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/flint_from_flint_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "anvilcraft:flint_block" - } + "anvilcraft:flint_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/fluid_tank.json b/src/generated/resources/data/anvilcraft/recipe/fluid_tank.json index 90e2110400..f04334c58f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/fluid_tank.json +++ b/src/generated/resources/data/anvilcraft/recipe/fluid_tank.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:plates/brass" - }, - { - "item": "anvilcraft:fish_tank" - } + "#c:plates/brass", + "anvilcraft:fish_tank" ], "result": { "count": 2, diff --git a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_heavy_halberd.json b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_heavy_halberd.json index d50293c821..456a58e61c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_heavy_halberd.json +++ b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_heavy_halberd.json @@ -24,32 +24,34 @@ { "type": "anvilcraft:normal_data_component", "component": "minecraft:custom_name", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 1 + "input": "input.1" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 2 + "input": "input.2" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 3 + "input": "input.3" } ] } ], - "result": "anvilcraft:ember_metal_heavy_halberd", + "result": { + "id": "anvilcraft:ember_metal_heavy_halberd" + }, "template": { "items": "anvilcraft:four_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_resonator.json b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_resonator.json index 7ae59c9c5f..719fbb7bdb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_resonator.json +++ b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/ember_metal_resonator.json @@ -24,32 +24,34 @@ { "type": "anvilcraft:normal_data_component", "component": "minecraft:custom_name", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 1 + "input": "input.1" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 2 + "input": "input.2" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 3 + "input": "input.3" } ] } ], - "result": "anvilcraft:ember_metal_resonator", + "result": { + "id": "anvilcraft:ember_metal_resonator" + }, "template": { "items": "anvilcraft:four_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_heavy_halberd.json b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_heavy_halberd.json index 98cd8d77f7..289ed394c2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_heavy_halberd.json +++ b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_heavy_halberd.json @@ -24,52 +24,54 @@ { "type": "anvilcraft:normal_data_component", "component": "minecraft:custom_name", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 1 + "input": "input.1" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 1 + "input": "input.1" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 2 + "input": "input.2" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 2 + "input": "input.2" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 3 + "input": "input.3" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 3 + "input": "input.3" } ] } ], - "result": "anvilcraft:frost_metal_heavy_halberd", + "result": { + "id": "anvilcraft:frost_metal_heavy_halberd" + }, "template": { "items": "anvilcraft:four_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_resonator.json b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_resonator.json index 13bf456cd6..0e728bedd2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_resonator.json +++ b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/frost_metal_resonator.json @@ -24,52 +24,54 @@ { "type": "anvilcraft:normal_data_component", "component": "minecraft:custom_name", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 0 + "input": "input.0" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 1 + "input": "input.1" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 1 + "input": "input.1" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 2 + "input": "input.2" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 2 + "input": "input.2" }, { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 3 + "input": "input.3" }, { "type": "anvilcraft:item_enchantments", "component": "anvilcraft:merciless_enchantments", - "input": 3 + "input": "input.3" } ] } ], - "result": "anvilcraft:frost_metal_resonator", + "result": { + "id": "anvilcraft:frost_metal_resonator" + }, "template": { "items": "anvilcraft:four_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/gem_amulet.json b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/gem_amulet.json index a6e5368764..5e3a654f63 100644 --- a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/gem_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/gem_amulet.json @@ -17,7 +17,9 @@ "material": { "items": "anvilcraft:frost_metal_block" }, - "result": "anvilcraft:gem_amulet", + "result": { + "id": "anvilcraft:gem_amulet" + }, "template": { "items": "anvilcraft:four_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/nature_amulet.json b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/nature_amulet.json index 15fab4d9da..f9ddc2d11b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/nature_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/four_to_one_smithing/nature_amulet.json @@ -17,7 +17,9 @@ "material": { "items": "anvilcraft:frost_metal_block" }, - "result": "anvilcraft:nature_amulet", + "result": { + "id": "anvilcraft:nature_amulet" + }, "template": { "items": "anvilcraft:four_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/frost_metal_block.json index eb196945b1..31684e3764 100644 --- a/src/generated/resources/data/anvilcraft/recipe/frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/frost_metal_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:frost_metal_ingot" - } + "A": "anvilcraft:frost_metal_ingot" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:frost_metal_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot.json b/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot.json index b202ef7992..ba1ee006f9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:frost_metal_ingot", "key": { - "A": { - "item": "anvilcraft:frost_metal_nugget" - } + "A": "anvilcraft:frost_metal_nugget" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:frost_metal_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot_from_block.json index d01e9e1be4..cb07f7b3ab 100644 --- a/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/frost_metal_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:frost_metal_ingot", "ingredients": [ - { - "item": "anvilcraft:frost_metal_block" - } + "anvilcraft:frost_metal_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/frost_metal_nugget.json b/src/generated/resources/data/anvilcraft/recipe/frost_metal_nugget.json index ab07961589..4220fab069 100644 --- a/src/generated/resources/data/anvilcraft/recipe/frost_metal_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/frost_metal_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:frost_metal_ingot" - } + "anvilcraft:frost_metal_ingot" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..531ec35e43 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:gray_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:gray_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..eb500f4384 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:gray_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:gray_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..d076e8c718 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/gray_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:gray_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..0343d794e1 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:green_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:green_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..52e06915a0 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:green_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:green_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_wall.json new file mode 100644 index 0000000000..24db15651c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/green_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:green_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:green_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/guide_book.json b/src/generated/resources/data/anvilcraft/recipe/guide_book.json index 15585c87c2..6b39ac4480 100644 --- a/src/generated/resources/data/anvilcraft/recipe/guide_book.json +++ b/src/generated/resources/data/anvilcraft/recipe/guide_book.json @@ -3,22 +3,13 @@ "category": "equipment", "ingredients": [ [ - { - "item": "minecraft:anvil" - }, - { - "item": "minecraft:chipped_anvil" - }, - { - "item": "minecraft:damaged_anvil" - } + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" ], - { - "item": "minecraft:book" - } + "minecraft:book" ], "result": { - "count": 1, "id": "anvilcraft:guide_book" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/gunpowder_block.json b/src/generated/resources/data/anvilcraft/recipe/gunpowder_block.json index 410ca446de..7faf731b10 100644 --- a/src/generated/resources/data/anvilcraft/recipe/gunpowder_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/gunpowder_block.json @@ -2,36 +2,17 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:gunpowder" - } + "minecraft:gunpowder", + "minecraft:gunpowder", + "minecraft:gunpowder", + "minecraft:gunpowder", + "minecraft:gunpowder", + "minecraft:gunpowder", + "minecraft:gunpowder", + "minecraft:gunpowder", + "minecraft:gunpowder" ], "result": { - "count": 1, "id": "anvilcraft:gunpowder_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/gunpowder_from_gunpowder_block.json b/src/generated/resources/data/anvilcraft/recipe/gunpowder_from_gunpowder_block.json index 784ad41c5b..b5a1ef5cde 100644 --- a/src/generated/resources/data/anvilcraft/recipe/gunpowder_from_gunpowder_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/gunpowder_from_gunpowder_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "anvilcraft:gunpowder_block" - } + "anvilcraft:gunpowder_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/heart_of_the_sea.json b/src/generated/resources/data/anvilcraft/recipe/heart_of_the_sea.json index 951cce8a7c..369140483f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/heart_of_the_sea.json +++ b/src/generated/resources/data/anvilcraft/recipe/heart_of_the_sea.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:sea_heart_shell" - }, - "B": { - "item": "anvilcraft:sapphire" - } + "A": "anvilcraft:sea_heart_shell", + "B": "anvilcraft:sapphire" }, "pattern": [ "A", @@ -15,7 +11,6 @@ "A" ], "result": { - "count": 1, "id": "minecraft:heart_of_the_sea" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/heat_collector.json b/src/generated/resources/data/anvilcraft/recipe/heat_collector.json index d6169cdc49..fecc86007a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/heat_collector.json +++ b/src/generated/resources/data/anvilcraft/recipe/heat_collector.json @@ -2,21 +2,11 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "B": { - "item": "anvilcraft:sapphire" - }, - "C": { - "tag": "c:plates/copper" - }, - "H": { - "item": "anvilcraft:charge_collector" - }, - "I": { - "item": "minecraft:blue_ice" - }, - "R": { - "item": "anvilcraft:royal_steel_ingot" - } + "B": "anvilcraft:sapphire", + "C": "#c:plates/copper", + "H": "anvilcraft:charge_collector", + "I": "minecraft:blue_ice", + "R": "anvilcraft:royal_steel_ingot" }, "pattern": [ "CBC", @@ -24,7 +14,6 @@ "RHR" ], "result": { - "count": 1, "id": "anvilcraft:heat_collector" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/heater.json b/src/generated/resources/data/anvilcraft/recipe/heater.json index befb58016f..2996d70442 100644 --- a/src/generated/resources/data/anvilcraft/recipe/heater.json +++ b/src/generated/resources/data/anvilcraft/recipe/heater.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:terracotta" - }, - "B": { - "item": "minecraft:iron_ingot" - }, - "C": { - "item": "anvilcraft:magnetoelectric_core" - } + "A": "minecraft:terracotta", + "B": "minecraft:iron_ingot", + "C": "anvilcraft:magnetoelectric_core" }, "pattern": [ "ABA", @@ -18,7 +12,6 @@ "BBB" ], "result": { - "count": 1, "id": "anvilcraft:heater" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/heavy_halberd_core.json b/src/generated/resources/data/anvilcraft/recipe/heavy_halberd_core.json index 3aca2d6963..84167c1694 100644 --- a/src/generated/resources/data/anvilcraft/recipe/heavy_halberd_core.json +++ b/src/generated/resources/data/anvilcraft/recipe/heavy_halberd_core.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "H": { - "item": "anvilcraft:heavy_iron_block" - }, - "M": { - "item": "anvilcraft:multiphase_matter" - } + "H": "anvilcraft:heavy_iron_block", + "M": "anvilcraft:multiphase_matter" }, "pattern": [ "HHH", @@ -15,7 +11,6 @@ "HHH" ], "result": { - "count": 1, "id": "anvilcraft:heavy_halberd_core" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/heavy_iron_block.json index bdc9b311e9..332634fef3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/heavy_iron_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:storage_blocks/iron" - } + "A": "#c:storage_blocks/iron" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:heavy_iron_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/heliostats_biological.json b/src/generated/resources/data/anvilcraft/recipe/heliostats_biological.json index 5c7103bc4a..1be2eda410 100644 --- a/src/generated/resources/data/anvilcraft/recipe/heliostats_biological.json +++ b/src/generated/resources/data/anvilcraft/recipe/heliostats_biological.json @@ -3,15 +3,9 @@ "category": "misc", "group": "anvilcraft:heliostats", "key": { - "F": { - "item": "minecraft:sunflower" - }, - "I": { - "item": "minecraft:iron_block" - }, - "S": { - "tag": "c:plates/silver" - } + "F": "minecraft:sunflower", + "I": "minecraft:iron_block", + "S": "#c:plates/silver" }, "pattern": [ "S S", diff --git a/src/generated/resources/data/anvilcraft/recipe/heliostats_electrical.json b/src/generated/resources/data/anvilcraft/recipe/heliostats_electrical.json index 40ee95dc0a..fc9056184c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/heliostats_electrical.json +++ b/src/generated/resources/data/anvilcraft/recipe/heliostats_electrical.json @@ -3,18 +3,10 @@ "category": "misc", "group": "anvilcraft:heliostats", "key": { - "C": { - "item": "anvilcraft:processor" - }, - "D": { - "item": "minecraft:daylight_detector" - }, - "I": { - "item": "minecraft:iron_block" - }, - "S": { - "tag": "c:plates/silver" - } + "C": "anvilcraft:processor", + "D": "minecraft:daylight_detector", + "I": "minecraft:iron_block", + "S": "#c:plates/silver" }, "pattern": [ "SDS", diff --git a/src/generated/resources/data/anvilcraft/recipe/hollow_magnet_block.json b/src/generated/resources/data/anvilcraft/recipe/hollow_magnet_block.json index 3fd4cfd8ff..c7f7e9a629 100644 --- a/src/generated/resources/data/anvilcraft/recipe/hollow_magnet_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/hollow_magnet_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "anvilcraft:magnet_ingot" - } + "A": "anvilcraft:magnet_ingot" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:hollow_magnet_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/impact_pile.json b/src/generated/resources/data/anvilcraft/recipe/impact_pile.json index 75d7968980..f9a30e84c5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/impact_pile.json +++ b/src/generated/resources/data/anvilcraft/recipe/impact_pile.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:obsidian" - }, - "B": { - "item": "minecraft:netherite_ingot" - } + "A": "minecraft:obsidian", + "B": "minecraft:netherite_ingot" }, "pattern": [ " A ", @@ -15,7 +11,6 @@ " B " ], "result": { - "count": 1, "id": "anvilcraft:impact_pile" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/induction_light.json b/src/generated/resources/data/anvilcraft/recipe/induction_light.json index c2508a04f1..6bb0d20c19 100644 --- a/src/generated/resources/data/anvilcraft/recipe/induction_light.json +++ b/src/generated/resources/data/anvilcraft/recipe/induction_light.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:iron_ingot" - }, - "B": { - "item": "anvilcraft:magnetoelectric_core" - } + "A": "minecraft:iron_ingot", + "B": "anvilcraft:magnetoelectric_core" }, "pattern": [ "A", diff --git a/src/generated/resources/data/anvilcraft/recipe/ionocraft.json b/src/generated/resources/data/anvilcraft/recipe/ionocraft.json index 912005f82a..c138d50329 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ionocraft.json +++ b/src/generated/resources/data/anvilcraft/recipe/ionocraft.json @@ -3,15 +3,9 @@ "category": "misc", "group": "anvilcraft:ionocraft", "key": { - "A": { - "tag": "c:nuggets/copper" - }, - "B": { - "tag": "c:rods/wooden" - }, - "C": { - "tag": "c:plates/tin" - } + "A": "#c:nuggets/copper", + "B": "#c:rods/wooden", + "C": "#c:plates/tin" }, "pattern": [ "AAA", @@ -19,7 +13,6 @@ " C " ], "result": { - "count": 1, "id": "anvilcraft:ionocraft" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/ionocraft_backpack.json b/src/generated/resources/data/anvilcraft/recipe/ionocraft_backpack.json index 045f4cafe6..2d386e4b24 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ionocraft_backpack.json +++ b/src/generated/resources/data/anvilcraft/recipe/ionocraft_backpack.json @@ -3,18 +3,10 @@ "category": "misc", "group": "anvilcraft:ionocraft_backpack", "key": { - "A": { - "item": "anvilcraft:ionocraft" - }, - "B": { - "tag": "anvilcraft:capacitor" - }, - "C": { - "tag": "c:plates/tin" - }, - "D": { - "item": "minecraft:leather_chestplate" - } + "A": "anvilcraft:ionocraft", + "B": "#anvilcraft:capacitor", + "C": "#c:plates/tin", + "D": "minecraft:leather_chestplate" }, "pattern": [ "ABA", @@ -22,7 +14,6 @@ "CDC" ], "result": { - "count": 1, "id": "anvilcraft:ionocraft_backpack" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/iron_block_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/iron_block_from_heavy_iron_block.json index c646d1bfdd..7b1a8cf314 100644 --- a/src/generated/resources/data/anvilcraft/recipe/iron_block_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/iron_block_from_heavy_iron_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "anvilcraft:heavy_iron_block" - } + "anvilcraft:heavy_iron_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/item_collector.json b/src/generated/resources/data/anvilcraft/recipe/item_collector.json index 947bc88ea2..17105a4bcf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/item_collector.json +++ b/src/generated/resources/data/anvilcraft/recipe/item_collector.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:iron_ingot" - }, - "B": { - "item": "anvilcraft:magnet" - }, - "C": { - "item": "minecraft:hopper" - }, - "D": { - "item": "anvilcraft:magnetoelectric_core" - } + "A": "minecraft:iron_ingot", + "B": "anvilcraft:magnet", + "C": "minecraft:hopper", + "D": "anvilcraft:magnetoelectric_core" }, "pattern": [ "ABA", @@ -21,7 +13,6 @@ "ACA" ], "result": { - "count": 1, "id": "anvilcraft:item_collector" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor.json b/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor.json index 25e357782b..e9f8934308 100644 --- a/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor.json +++ b/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor.json @@ -5,19 +5,23 @@ { "type": "anvillib_recipe:has_item_ingredient", "item": { - "items": "anvilcraft:resin_block", - "predicates": { - "anvilcraft:saved_entity": { - "entitys": "minecraft:creeper", - "predicates": [ - { - "expected": 1, - "requirement": "GREATER_OR_EQUAL", - "tagKeyPath": "powered" - } - ] + "components": { + "predicates": { + "anvilcraft:saved_entity": { + "entities": [ + "minecraft:creeper" + ], + "predicates": [ + { + "expected": 1, + "requirement": "GREATER_OR_EQUAL", + "tagKeyPath": "powered" + } + ] + } } - } + }, + "items": "anvilcraft:resin_block" }, "offset": [ 0.0, @@ -49,7 +53,6 @@ } ], "icon": { - "count": 1, "id": "anvilcraft:supercapacitor" }, "non_conflicting": [ diff --git a/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor_empty.json index cfb4a2508f..cf34237e8b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor_empty.json @@ -6,24 +6,25 @@ "items": "#c:plates/iron" }, { - "items": "anvilcraft:resin_block", - "predicates": { - "anvilcraft:saved_entity": { - "entitys": "minecraft:creeper" - }, - "anvillib:not": { - "anvilcraft:saved_entity": { - "entitys": "minecraft:creeper", - "predicates": [ - { - "expected": 1, - "requirement": "GREATER_OR_EQUAL", - "tagKeyPath": "powered" - } - ] + "components": { + "predicates": { + "anvillib:not": { + "anvilcraft:saved_entity": { + "entities": [ + "minecraft:creeper" + ], + "predicates": [ + { + "expected": 1, + "requirement": "GREATER_OR_EQUAL", + "tagKeyPath": "powered" + } + ] + } } } - } + }, + "items": "anvilcraft:resin_block" } ], "results": [ diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_chain.json deleted file mode 100644 index 7250148407..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_chain.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "anvilcraft:item_crush", - "ingredients": [ - { - "items": "minecraft:chainmail_boots" - } - ], - "results": [ - { - "count": { - "type": "minecraft:uniform", - "max": 2.0, - "min": 0.0 - }, - "id": "minecraft:chain" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_iron_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_iron_chain.json new file mode 100644 index 0000000000..9f349723f4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_boots_2_iron_chain.json @@ -0,0 +1,18 @@ +{ + "type": "anvilcraft:item_crush", + "ingredients": [ + { + "items": "minecraft:chainmail_boots" + } + ], + "results": [ + { + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "id": "minecraft:iron_chain" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_chain.json deleted file mode 100644 index 52a5d737cf..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_chain.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "anvilcraft:item_crush", - "ingredients": [ - { - "items": "minecraft:chainmail_chestplate" - } - ], - "results": [ - { - "count": { - "type": "minecraft:uniform", - "max": 2.0, - "min": 0.0 - }, - "id": "minecraft:chain" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_iron_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_iron_chain.json new file mode 100644 index 0000000000..ba7bf6875d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_chestplate_2_iron_chain.json @@ -0,0 +1,18 @@ +{ + "type": "anvilcraft:item_crush", + "ingredients": [ + { + "items": "minecraft:chainmail_chestplate" + } + ], + "results": [ + { + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "id": "minecraft:iron_chain" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_chain.json deleted file mode 100644 index bf226f2ad2..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_chain.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "anvilcraft:item_crush", - "ingredients": [ - { - "items": "minecraft:chainmail_helmet" - } - ], - "results": [ - { - "count": { - "type": "minecraft:uniform", - "max": 2.0, - "min": 0.0 - }, - "id": "minecraft:chain" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_iron_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_iron_chain.json new file mode 100644 index 0000000000..9029114e03 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_helmet_2_iron_chain.json @@ -0,0 +1,18 @@ +{ + "type": "anvilcraft:item_crush", + "ingredients": [ + { + "items": "minecraft:chainmail_helmet" + } + ], + "results": [ + { + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "id": "minecraft:iron_chain" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_chain.json deleted file mode 100644 index 7436e23ee0..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_chain.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "anvilcraft:item_crush", - "ingredients": [ - { - "items": "minecraft:chainmail_leggings" - } - ], - "results": [ - { - "count": { - "type": "minecraft:uniform", - "max": 2.0, - "min": 0.0 - }, - "id": "minecraft:chain" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_iron_chain.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_iron_chain.json new file mode 100644 index 0000000000..a1db35f67a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/item_crush/armor/chainmail_leggings_2_iron_chain.json @@ -0,0 +1,18 @@ +{ + "type": "anvilcraft:item_crush", + "ingredients": [ + { + "items": "minecraft:chainmail_leggings" + } + ], + "results": [ + { + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "id": "minecraft:iron_chain" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/item_crush/item_crush/gem_from_chromatic_stone.json b/src/generated/resources/data/anvilcraft/recipe/item_crush/item_crush/gem_from_chromatic_stone.json index 4f31a9b215..67238e785f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/item_crush/item_crush/gem_from_chromatic_stone.json +++ b/src/generated/resources/data/anvilcraft/recipe/item_crush/item_crush/gem_from_chromatic_stone.json @@ -20,7 +20,6 @@ } ], "icon": { - "count": 1, "id": "anvilcraft:crushing_table" }, "non_conflicting": [ diff --git a/src/generated/resources/data/anvilcraft/recipe/item_detector.json b/src/generated/resources/data/anvilcraft/recipe/item_detector.json index 701067d9cb..84371fe81b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/item_detector.json +++ b/src/generated/resources/data/anvilcraft/recipe/item_detector.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "B": { - "item": "anvilcraft:circuit_board" - }, - "C": { - "tag": "c:ingots/copper" - }, - "I": { - "tag": "c:ingots/iron" - }, - "R": { - "item": "minecraft:comparator" - } + "B": "anvilcraft:circuit_board", + "C": "#c:ingots/copper", + "I": "#c:ingots/iron", + "R": "minecraft:comparator" }, "pattern": [ "CC ", @@ -21,7 +13,6 @@ "III" ], "result": { - "count": 1, "id": "anvilcraft:item_detector" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/abnormal_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/abnormal_amulet.json index 7e69686b70..ccc02e8789 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/abnormal_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/abnormal_amulet.json @@ -2,62 +2,17 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "anvilcraft:cursed_gold_ingot" + "items": "anvilcraft:cursed_gold_ingot" }, { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" + "count": 16, + "items": "anvilcraft:levitation_powder" } ], - "result": { - "count": 1, - "id": "anvilcraft:abnormal_amulet" + "source": { + "items": "anvilcraft:abnormal_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/anvil_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/anvil_amulet.json index 066f24fe14..7b972e2d81 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/anvil_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/anvil_amulet.json @@ -2,14 +2,13 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "minecraft:anvil" + "items": "minecraft:anvil" } ], - "result": { - "count": 1, - "id": "anvilcraft:anvil_amulet" + "source": { + "items": "anvilcraft:anvil_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/banner_patterns.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/banner_patterns.json new file mode 100644 index 0000000000..7a269bde6a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/banner_patterns.json @@ -0,0 +1,18 @@ +{ + "type": "anvilcraft:jewel_crafting", + "ingredients": [ + { + "items": "minecraft:paper" + }, + { + "items": "minecraft:ink_sac" + } + ], + "source": { + "components": { + "predicates": { + "minecraft:provides_banner_patterns": {} + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/cat_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/cat_amulet.json index b78b19ce36..b7369085a1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/cat_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/cat_amulet.json @@ -2,107 +2,18 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "minecraft:salmon" + "count": 16, + "items": "minecraft:salmon" }, { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:salmon" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" - }, - { - "item": "minecraft:cod" + "count": 16, + "items": "minecraft:cod" } ], - "result": { - "count": 1, - "id": "anvilcraft:cat_amulet" + "source": { + "items": "anvilcraft:cat_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/comrade_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/comrade_amulet.json index c194d0c1c5..4e83aafe6e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/comrade_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/comrade_amulet.json @@ -2,23 +2,14 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "minecraft:name_tag" - }, - { - "item": "minecraft:name_tag" - }, - { - "item": "minecraft:name_tag" - }, - { - "item": "minecraft:name_tag" + "count": 4, + "items": "minecraft:name_tag" } ], - "result": { - "count": 1, - "id": "anvilcraft:comrade_amulet" + "source": { + "items": "anvilcraft:comrade_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/dog_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/dog_amulet.json index 4cb35cd66b..8229aedd98 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/dog_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/dog_amulet.json @@ -2,107 +2,18 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "minecraft:bone" + "count": 16, + "items": "minecraft:bone" }, { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "item": "minecraft:bone" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" - }, - { - "tag": "minecraft:meat" + "count": 16, + "items": "#minecraft:meat" } ], - "result": { - "count": 1, - "id": "anvilcraft:dog_amulet" + "source": { + "items": "anvilcraft:dog_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/elytra.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/elytra.json index 8b019c39f7..faea108431 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/elytra.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/elytra.json @@ -2,110 +2,23 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "minecraft:phantom_membrane" + "count": 8, + "items": "minecraft:phantom_membrane" }, { - "item": "minecraft:phantom_membrane" + "count": 8, + "items": "#c:feathers" }, { - "item": "minecraft:phantom_membrane" + "count": 2, + "items": "#c:leathers" }, { - "item": "minecraft:phantom_membrane" - }, - { - "item": "minecraft:phantom_membrane" - }, - { - "item": "minecraft:phantom_membrane" - }, - { - "item": "minecraft:phantom_membrane" - }, - { - "item": "minecraft:phantom_membrane" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:feathers" - }, - { - "tag": "c:leathers" - }, - { - "tag": "c:leathers" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" - }, - { - "item": "minecraft:bamboo" + "count": 16, + "items": "minecraft:bamboo" } ], - "result": { - "count": 1, - "id": "minecraft:elytra" + "source": { + "items": "minecraft:elytra" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/emerald_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/emerald_amulet.json index 52bdc1bd09..db7e72f033 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/emerald_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/emerald_amulet.json @@ -2,14 +2,13 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "minecraft:emerald_block" + "items": "minecraft:emerald_block" } ], - "result": { - "count": 1, - "id": "anvilcraft:emerald_amulet" + "source": { + "items": "anvilcraft:emerald_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/enchanted_golden_apple.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/enchanted_golden_apple.json index 7a38edd41d..2c3c823c9a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/enchanted_golden_apple.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/enchanted_golden_apple.json @@ -2,83 +2,18 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "minecraft:experience_bottle" + "count": 16, + "items": "minecraft:experience_bottle" }, { - "item": "minecraft:experience_bottle" + "count": 8, + "items": "minecraft:gold_block" }, { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:gold_block" - }, - { - "item": "minecraft:golden_apple" + "items": "minecraft:golden_apple" } ], - "result": { - "count": 1, - "id": "minecraft:enchanted_golden_apple" + "source": { + "items": "minecraft:enchanted_golden_apple" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/feather_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/feather_amulet.json index 44cc064caa..6a3d32ccf4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/feather_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/feather_amulet.json @@ -2,71 +2,18 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "minecraft:feather" + "count": 16, + "items": "minecraft:feather" }, { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:feather" - }, - { - "item": "minecraft:phantom_membrane" - }, - { - "item": "minecraft:phantom_membrane" - }, - { - "item": "minecraft:phantom_membrane" - }, - { - "item": "minecraft:phantom_membrane" + "count": 4, + "items": "minecraft:phantom_membrane" } ], - "result": { - "count": 1, - "id": "anvilcraft:feather_amulet" + "source": { + "items": "anvilcraft:feather_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/heavy_core.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/heavy_core.json index 34f745157b..133f2ad2c8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/heavy_core.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/heavy_core.json @@ -2,395 +2,18 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:heavy_iron_block" + "count": 64, + "items": "anvilcraft:heavy_iron_block" }, { - "item": "anvilcraft:heavy_iron_block" + "count": 64, + "items": "#c:storage_blocks/lead" }, { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "item": "anvilcraft:heavy_iron_block" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "tag": "c:storage_blocks/lead" - }, - { - "item": "anvilcraft:space_overcompressor" + "items": "anvilcraft:space_overcompressor" } ], - "result": { - "count": 1, - "id": "minecraft:heavy_core" + "source": { + "items": "minecraft:heavy_core" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/music_discs.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/music_discs.json new file mode 100644 index 0000000000..9f5430ac5b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/music_discs.json @@ -0,0 +1,19 @@ +{ + "type": "anvilcraft:jewel_crafting", + "ingredients": [ + { + "count": 4, + "items": "anvilcraft:hardend_resin" + }, + { + "items": "minecraft:paper" + } + ], + "source": { + "components": { + "predicates": { + "minecraft:jukebox_playable": {} + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_bottle.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_bottle.json index 9a4bfc6f18..461c06b92f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_bottle.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_bottle.json @@ -2,65 +2,18 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "minecraft:experience_bottle" + "count": 16, + "items": "minecraft:experience_bottle" }, { - "item": "minecraft:experience_bottle" + "count": 2, + "items": "anvilcraft:cursed_gold_ingot" }, { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "minecraft:experience_bottle" - }, - { - "item": "anvilcraft:cursed_gold_ingot" - }, - { - "item": "anvilcraft:cursed_gold_ingot" - }, - { - "item": "minecraft:glass_bottle" + "items": "minecraft:glass_bottle" } ], - "result": { - "count": 1, - "id": "minecraft:ominous_bottle" + "source": { + "items": "minecraft:ominous_bottle" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_trial_key.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_trial_key.json index f2aa913416..e6c0b82028 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_trial_key.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ominous_trial_key.json @@ -2,23 +2,17 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "minecraft:polished_tuff" + "count": 3, + "items": "minecraft:polished_tuff" }, { - "item": "minecraft:polished_tuff" + "items": "minecraft:oxidized_copper" }, { - "item": "minecraft:polished_tuff" - }, - { - "item": "minecraft:oxidized_copper" - }, - { - "item": "minecraft:ominous_bottle" + "items": "minecraft:ominous_bottle" } ], - "result": { - "count": 1, - "id": "minecraft:ominous_trial_key" + "source": { + "items": "minecraft:ominous_trial_key" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ruby_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ruby_amulet.json index a5e5a5244b..8d22d8f69c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ruby_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/ruby_amulet.json @@ -2,14 +2,13 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "anvilcraft:ruby_block" + "items": "anvilcraft:ruby_block" } ], - "result": { - "count": 1, - "id": "anvilcraft:ruby_amulet" + "source": { + "items": "anvilcraft:ruby_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/sapphire_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/sapphire_amulet.json index b3447d090e..b64e05a8e9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/sapphire_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/sapphire_amulet.json @@ -2,14 +2,13 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "anvilcraft:sapphire_block" + "items": "anvilcraft:sapphire_block" } ], - "result": { - "count": 1, - "id": "anvilcraft:sapphire_amulet" + "source": { + "items": "anvilcraft:sapphire_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/silence_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/silence_amulet.json index de42ca9f1f..65f3245418 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/silence_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/silence_amulet.json @@ -2,59 +2,14 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:echo_shard" + "count": 16, + "items": "minecraft:echo_shard" } ], - "result": { - "count": 1, - "id": "anvilcraft:silence_amulet" + "source": { + "items": "anvilcraft:silence_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/topaz_amulet.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/topaz_amulet.json index 2579494061..ffae65dc63 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/topaz_amulet.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/topaz_amulet.json @@ -2,14 +2,13 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "anvilcraft:silver_ingot" + "items": "anvilcraft:silver_ingot" }, { - "item": "anvilcraft:topaz_block" + "items": "anvilcraft:topaz_block" } ], - "result": { - "count": 1, - "id": "anvilcraft:topaz_amulet" + "source": { + "items": "anvilcraft:topaz_amulet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/totem_of_undying.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/totem_of_undying.json index f0f65b8f86..f91df9e67f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/totem_of_undying.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/totem_of_undying.json @@ -2,20 +2,17 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "tag": "c:storage_blocks/gold" + "items": "#c:storage_blocks/gold" }, { - "item": "minecraft:emerald" + "count": 2, + "items": "minecraft:emerald" }, { - "item": "minecraft:emerald" - }, - { - "item": "anvilcraft:royal_steel_ingot" + "items": "anvilcraft:royal_steel_ingot" } ], - "result": { - "count": 1, - "id": "minecraft:totem_of_undying" + "source": { + "items": "minecraft:totem_of_undying" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trial_key.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trial_key.json index 7848864a34..bf2c3c0778 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trial_key.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trial_key.json @@ -2,14 +2,13 @@ "type": "anvilcraft:jewel_crafting", "ingredients": [ { - "item": "minecraft:polished_tuff" + "items": "minecraft:polished_tuff" }, { - "item": "minecraft:copper_ingot" + "items": "minecraft:copper_ingot" } ], - "result": { - "count": 1, - "id": "minecraft:trial_key" + "source": { + "items": "minecraft:trial_key" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trim_templates.json b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trim_templates.json new file mode 100644 index 0000000000..474a27c661 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/jewel_crafting/trim_templates.json @@ -0,0 +1,18 @@ +{ + "type": "anvilcraft:jewel_crafting", + "ingredients": [ + { + "items": "anvilcraft:earth_core_shard" + }, + { + "items": "minecraft:diamond" + } + ], + "source": { + "components": { + "predicates": { + "minecraft:provides_trim_material": {} + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/jewelcrafting_table.json b/src/generated/resources/data/anvilcraft/recipe/jewelcrafting_table.json index b0c830fdcf..afec380055 100644 --- a/src/generated/resources/data/anvilcraft/recipe/jewelcrafting_table.json +++ b/src/generated/resources/data/anvilcraft/recipe/jewelcrafting_table.json @@ -2,21 +2,11 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:grindstone" - }, - "B": { - "item": "minecraft:glass" - }, - "C": { - "item": "minecraft:grindstone" - }, - "D": { - "item": "minecraft:smooth_stone" - }, - "F": { - "tag": "minecraft:planks" - } + "A": "minecraft:grindstone", + "B": "minecraft:glass", + "C": "minecraft:grindstone", + "D": "minecraft:smooth_stone", + "F": "#minecraft:planks" }, "pattern": [ "ABC", @@ -24,7 +14,6 @@ "F F" ], "result": { - "count": 1, "id": "anvilcraft:jewelcrafting_table" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/laser_receiver.json b/src/generated/resources/data/anvilcraft/recipe/laser_receiver.json index c7072906cf..80d5cc1672 100644 --- a/src/generated/resources/data/anvilcraft/recipe/laser_receiver.json +++ b/src/generated/resources/data/anvilcraft/recipe/laser_receiver.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "anvilcraft:ruby" - }, - "B": { - "item": "anvilcraft:magnetoelectric_core" - }, - "C": { - "item": "minecraft:redstone" - }, - "D": { - "item": "anvilcraft:royal_steel_ingot" - } + "A": "anvilcraft:ruby", + "B": "anvilcraft:magnetoelectric_core", + "C": "minecraft:redstone", + "D": "anvilcraft:royal_steel_ingot" }, "pattern": [ "AAA", @@ -21,7 +13,6 @@ "DCD" ], "result": { - "count": 1, "id": "anvilcraft:laser_receiver" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/lead_block.json b/src/generated/resources/data/anvilcraft/recipe/lead_block.json index e92003dc4d..257fe9a447 100644 --- a/src/generated/resources/data/anvilcraft/recipe/lead_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/lead_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/lead" - } + "A": "#c:ingots/lead" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:lead_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/lead_ingot.json b/src/generated/resources/data/anvilcraft/recipe/lead_ingot.json index 0833eb6e34..454f02e8ed 100644 --- a/src/generated/resources/data/anvilcraft/recipe/lead_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/lead_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:lead_ingot", "key": { - "A": { - "tag": "c:nuggets/lead" - } + "A": "#c:nuggets/lead" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:lead_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/lead_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/lead_ingot_from_block.json index 3f5919b198..412a5c80d8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/lead_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/lead_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:lead_ingot", "ingredients": [ - { - "item": "anvilcraft:lead_block" - } + "anvilcraft:lead_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/lead_nugget.json b/src/generated/resources/data/anvilcraft/recipe/lead_nugget.json index 5028c46ed7..e96af802af 100644 --- a/src/generated/resources/data/anvilcraft/recipe/lead_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/lead_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/lead" - } + "#c:ingots/lead" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/lead_pressure_plate_from_ingots_lead.json b/src/generated/resources/data/anvilcraft/recipe/lead_pressure_plate_from_ingots_lead.json index 74fa72a090..8d2d62ea25 100644 --- a/src/generated/resources/data/anvilcraft/recipe/lead_pressure_plate_from_ingots_lead.json +++ b/src/generated/resources/data/anvilcraft/recipe/lead_pressure_plate_from_ingots_lead.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/lead" - } + "A": "#c:ingots/lead" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:lead_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/levitation_powder_block_from_powders.json b/src/generated/resources/data/anvilcraft/recipe/levitation_powder_block_from_powders.json index c732e2a449..bab93e9586 100644 --- a/src/generated/resources/data/anvilcraft/recipe/levitation_powder_block_from_powders.json +++ b/src/generated/resources/data/anvilcraft/recipe/levitation_powder_block_from_powders.json @@ -2,36 +2,17 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - }, - { - "item": "anvilcraft:levitation_powder" - } + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder", + "anvilcraft:levitation_powder" ], "result": { - "count": 1, "id": "anvilcraft:levitation_powder_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/levitation_powder_from_block.json b/src/generated/resources/data/anvilcraft/recipe/levitation_powder_from_block.json index 563d247751..894485062f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/levitation_powder_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/levitation_powder_from_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:levitation_powder_block" - } + "anvilcraft:levitation_powder_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..291c683325 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:light_blue_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:light_blue_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8fc8d492c7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:light_blue_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:light_blue_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..7367b693b7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/light_blue_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:light_blue_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:light_blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..a9fcd8ed6d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:light_gray_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:light_gray_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..dc8e49fe3b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:light_gray_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:light_gray_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..70232247d8 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/light_gray_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:light_gray_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:light_gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..6f15dffc19 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:lime_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:lime_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..1fde61bdaf --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:lime_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:lime_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_wall.json new file mode 100644 index 0000000000..105e21b609 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/lime_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:lime_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:lime_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/load_monitor.json b/src/generated/resources/data/anvilcraft/recipe/load_monitor.json index 7eb0c37341..7ecf3d3f8a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/load_monitor.json +++ b/src/generated/resources/data/anvilcraft/recipe/load_monitor.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:compass" - }, - "B": { - "item": "anvilcraft:magnetoelectric_core" - } + "A": "minecraft:compass", + "B": "anvilcraft:magnetoelectric_core" }, "pattern": [ "A", diff --git a/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..808b4af9ca --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:magenta_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:magenta_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..160f452d8c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:magenta_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:magenta_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_wall.json new file mode 100644 index 0000000000..074497b2c4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/magenta_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:magenta_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:magenta_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/magnet.json b/src/generated/resources/data/anvilcraft/recipe/magnet.json index 81950696ad..8198015f28 100644 --- a/src/generated/resources/data/anvilcraft/recipe/magnet.json +++ b/src/generated/resources/data/anvilcraft/recipe/magnet.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:ender_pearl" - }, - "B": { - "item": "anvilcraft:magnet_ingot" - }, - "C": { - "item": "minecraft:redstone" - } + "A": "minecraft:ender_pearl", + "B": "anvilcraft:magnet_ingot", + "C": "minecraft:redstone" }, "pattern": [ " A ", @@ -18,7 +12,6 @@ " A " ], "result": { - "count": 1, "id": "anvilcraft:magnet" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/magnet_block.json b/src/generated/resources/data/anvilcraft/recipe/magnet_block.json index d63a6758dc..9bfdefa0c5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/magnet_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/magnet_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "anvilcraft:magnet_ingot" - } + "A": "anvilcraft:magnet_ingot" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:magnet_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_block.json index d033dd072b..4063f7388d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:magnet_ingot", "ingredients": [ - { - "item": "anvilcraft:magnet_block" - } + "anvilcraft:magnet_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_hollow_block.json b/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_hollow_block.json index 5668d01f58..68e6a3dff2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_hollow_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/magnet_ingot_from_hollow_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:magnet_ingot", "ingredients": [ - { - "item": "anvilcraft:hollow_magnet_block" - } + "anvilcraft:hollow_magnet_block" ], "result": { "count": 8, diff --git a/src/generated/resources/data/anvilcraft/recipe/magnetic_chute.json b/src/generated/resources/data/anvilcraft/recipe/magnetic_chute.json index a420bc4633..0436be2779 100644 --- a/src/generated/resources/data/anvilcraft/recipe/magnetic_chute.json +++ b/src/generated/resources/data/anvilcraft/recipe/magnetic_chute.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:magnet_ingot" - }, - "B": { - "item": "minecraft:dropper" - } + "A": "anvilcraft:magnet_ingot", + "B": "minecraft:dropper" }, "pattern": [ " A ", diff --git a/src/generated/resources/data/anvilcraft/recipe/magnetoelectric_core.json b/src/generated/resources/data/anvilcraft/recipe/magnetoelectric_core.json index 8a7a2f4849..75d3030e69 100644 --- a/src/generated/resources/data/anvilcraft/recipe/magnetoelectric_core.json +++ b/src/generated/resources/data/anvilcraft/recipe/magnetoelectric_core.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "tag": "c:ingots/copper" - }, - "B": { - "tag": "c:glass_blocks" - }, - "C": { - "item": "anvilcraft:hollow_magnet_block" - } + "A": "#c:ingots/copper", + "B": "#c:glass_blocks", + "C": "anvilcraft:hollow_magnet_block" }, "pattern": [ "ABA", @@ -18,7 +12,6 @@ "ABA" ], "result": { - "count": 1, "id": "anvilcraft:magnetoelectric_core" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_block.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_block.json index 1dd30f96f6..edae3797e0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_block.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:cursed_gold_block" - }, + "ingredient": "anvilcraft:cursed_gold_block", "mass": 2500 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_ingot.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_ingot.json index fddf34f53c..099efa09a6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_ingot.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:cursed_gold_ingot" - }, + "ingredient": "anvilcraft:cursed_gold_ingot", "mass": 250 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_nugget.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_nugget.json index d624a108e3..da20ea992d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_cursed_gold_nugget.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:cursed_gold_nugget" - }, + "ingredient": "anvilcraft:cursed_gold_nugget", "mass": 25 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_block.json index 45a39247be..5d268d0c45 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_block.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:ember_metal_block" - }, + "ingredient": "anvilcraft:ember_metal_block", "mass": 20000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_ingot.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_ingot.json index 9e495351dc..105e9e5034 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_ingot.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:ember_metal_ingot" - }, + "ingredient": "anvilcraft:ember_metal_ingot", "mass": 2000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_nugget.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_nugget.json index bb1df29d85..9cce6a4d0f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_ember_metal_nugget.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:ember_metal_nugget" - }, + "ingredient": "anvilcraft:ember_metal_nugget", "mass": 200 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_heavy_iron_block.json index f2063ea3ea..af48d0a023 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_heavy_iron_block.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "mass": 8000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_block.json index 9f2d4ebe99..5ffd62df6c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_block.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:royal_steel_block" - }, + "ingredient": "anvilcraft:royal_steel_block", "mass": 4000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_ingot.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_ingot.json index 1fa25eac1c..396d2ce912 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_ingot.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:royal_steel_ingot" - }, + "ingredient": "anvilcraft:royal_steel_ingot", "mass": 400 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_nugget.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_nugget.json index e6e8983e73..b94f63162f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/anvilcraft_royal_steel_nugget.json @@ -1,7 +1,5 @@ { "type": "anvilcraft:mass_inject", - "ingredient": { - "item": "anvilcraft:royal_steel_nugget" - }, + "ingredient": "anvilcraft:royal_steel_nugget", "mass": 40 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/brass.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/brass.json index 8b7ccba59e..509ba5bfdf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/brass.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/brass.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/brass" - }, + "ingredient": "#c:ingots/brass", "mass": 80 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/bronze.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/bronze.json index 1b639d70ef..0c9f547977 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/bronze.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/bronze.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/bronze" - }, + "ingredient": "#c:ingots/bronze", "mass": 80 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/copper.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/copper.json index fc0acd2e2e..3669b63f9f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/copper.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/copper.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/copper" - }, + "ingredient": "#c:ingots/copper", "mass": 90 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/frost_metal.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/frost_metal.json index 84e10a0725..b19889b454 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/frost_metal.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/frost_metal.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/frost_metal" - }, + "ingredient": "#c:ingots/frost_metal", "mass": 300 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/gold.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/gold.json index 26c95900ae..3901da01d0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/gold.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/gold.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/gold" - }, + "ingredient": "#c:ingots/gold", "mass": 190 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/iron.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/iron.json index 9a492b7ffb..0cd60b59a0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/iron.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/iron.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/iron" - }, + "ingredient": "#c:ingots/iron", "mass": 80 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/lead.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/lead.json index 6e9d5e293d..41f7be374c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/lead.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/lead.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/lead" - }, + "ingredient": "#c:ingots/lead", "mass": 110 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/netherite.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/netherite.json index 417a5146d9..8d52c003ee 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/netherite.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/netherite.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/netherite" - }, + "ingredient": "#c:ingots/netherite", "mass": 1500 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/plutonium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/plutonium.json index 4ce1ce060d..e8a67f535b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/plutonium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/plutonium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/plutonium" - }, + "ingredient": "#c:ingots/plutonium", "mass": 190 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/silver.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/silver.json index 1ae46d9807..39da6ac9ed 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/silver.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/silver.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/silver" - }, + "ingredient": "#c:ingots/silver", "mass": 100 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tin.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tin.json index 1dcdc32fbb..df2baea007 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tin.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tin.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/tin" - }, + "ingredient": "#c:ingots/tin", "mass": 70 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/titanium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/titanium.json index 4ce2703af2..6423ff893d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/titanium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/titanium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/titanium" - }, + "ingredient": "#c:ingots/titanium", "mass": 50 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/transcendium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/transcendium.json index 28d018a77b..70f786e1fb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/transcendium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/transcendium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/transcendium" - }, + "ingredient": "#c:ingots/transcendium", "mass": 2500 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tungsten.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tungsten.json index 265476da68..3f04ab18bd 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tungsten.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/tungsten.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/tungsten" - }, + "ingredient": "#c:ingots/tungsten", "mass": 190 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/uranium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/uranium.json index ed51e3e80a..2df8488f68 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/uranium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/uranium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/uranium" - }, + "ingredient": "#c:ingots/uranium", "mass": 180 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/zinc.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/zinc.json index ad74784e63..29e5987f4d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/zinc.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_ingots/zinc.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:ingots/zinc" - }, + "ingredient": "#c:ingots/zinc", "mass": 70 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/brass.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/brass.json index a6782458a2..1dcf583706 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/brass.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/brass.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/brass" - }, + "ingredient": "#c:nuggets/brass", "mass": 8 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/bronze.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/bronze.json index 01238179c1..e62f52cec5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/bronze.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/bronze.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/bronze" - }, + "ingredient": "#c:nuggets/bronze", "mass": 8 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/copper.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/copper.json index 9204579c36..0ec07ffbbb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/copper.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/copper.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/copper" - }, + "ingredient": "#c:nuggets/copper", "mass": 9 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/frost_metal.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/frost_metal.json index 27ce8fcf32..090f26cee2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/frost_metal.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/frost_metal.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/frost_metal" - }, + "ingredient": "#c:nuggets/frost_metal", "mass": 30 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/gold.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/gold.json index 31b6cb9e52..dac6cc6d65 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/gold.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/gold.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/gold" - }, + "ingredient": "#c:nuggets/gold", "mass": 19 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/iron.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/iron.json index a21b610e1a..5f3ae21449 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/iron.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/iron.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/iron" - }, + "ingredient": "#c:nuggets/iron", "mass": 8 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/lead.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/lead.json index 7d8e13e55c..f530dc1337 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/lead.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/lead.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/lead" - }, + "ingredient": "#c:nuggets/lead", "mass": 11 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/netherite.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/netherite.json index 7c6b8629db..86cce524ca 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/netherite.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/netherite.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/netherite" - }, + "ingredient": "#c:nuggets/netherite", "mass": 150 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/plutonium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/plutonium.json index 971bf2b221..74e5ab4783 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/plutonium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/plutonium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/plutonium" - }, + "ingredient": "#c:nuggets/plutonium", "mass": 19 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/silver.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/silver.json index c68f03942c..6f1246d6ae 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/silver.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/silver.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/silver" - }, + "ingredient": "#c:nuggets/silver", "mass": 10 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tin.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tin.json index 6ba5ff5922..d70a18719a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tin.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tin.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/tin" - }, + "ingredient": "#c:nuggets/tin", "mass": 7 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/titanium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/titanium.json index 7694076ec8..a92d84d760 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/titanium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/titanium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/titanium" - }, + "ingredient": "#c:nuggets/titanium", "mass": 5 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/transcendium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/transcendium.json index ce883a3d99..ffde50e8bb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/transcendium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/transcendium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/transcendium" - }, + "ingredient": "#c:nuggets/transcendium", "mass": 250 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tungsten.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tungsten.json index 4b26613099..aabed001da 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tungsten.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/tungsten.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/tungsten" - }, + "ingredient": "#c:nuggets/tungsten", "mass": 19 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/uranium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/uranium.json index bb91c279a5..bf5fdf2210 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/uranium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/uranium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/uranium" - }, + "ingredient": "#c:nuggets/uranium", "mass": 18 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/zinc.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/zinc.json index 3d9ebe4ee2..d590df54e7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/zinc.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_nuggets/zinc.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:nuggets/zinc" - }, + "ingredient": "#c:nuggets/zinc", "mass": 7 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/brass.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/brass.json index 7468f67ded..6ba11be067 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/brass.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/brass.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/brass" - }, + "ingredient": "#c:storage_blocks/brass", "mass": 800 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/bronze.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/bronze.json index 57dcb82a36..f81b4ec5f9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/bronze.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/bronze.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/bronze" - }, + "ingredient": "#c:storage_blocks/bronze", "mass": 800 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/copper.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/copper.json index eb62798067..df13909e87 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/copper.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/copper.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/copper" - }, + "ingredient": "#c:storage_blocks/copper", "mass": 900 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/frost_metal.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/frost_metal.json index 852c2a4090..d8fc5bbc12 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/frost_metal.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/frost_metal.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/frost_metal" - }, + "ingredient": "#c:storage_blocks/frost_metal", "mass": 3000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/gold.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/gold.json index 5d6867f260..e3e4109207 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/gold.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/gold.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/gold" - }, + "ingredient": "#c:storage_blocks/gold", "mass": 1900 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/iron.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/iron.json index 453f3ef9ec..e42a2faf52 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/iron.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/iron.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/iron" - }, + "ingredient": "#c:storage_blocks/iron", "mass": 800 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/lead.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/lead.json index 8325305a48..40027dcb2d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/lead.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/lead.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/lead" - }, + "ingredient": "#c:storage_blocks/lead", "mass": 1100 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/netherite.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/netherite.json index 87506f4d7a..6d24173e6d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/netherite.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/netherite.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/netherite" - }, + "ingredient": "#c:storage_blocks/netherite", "mass": 15000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/plutonium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/plutonium.json index 0a3dda3c1b..f0107bae0b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/plutonium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/plutonium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/plutonium" - }, + "ingredient": "#c:storage_blocks/plutonium", "mass": 1900 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/silver.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/silver.json index 0e9d75c350..97f07ac9fc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/silver.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/silver.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/silver" - }, + "ingredient": "#c:storage_blocks/silver", "mass": 1000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tin.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tin.json index 6889b88435..e4e12faf05 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tin.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tin.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/tin" - }, + "ingredient": "#c:storage_blocks/tin", "mass": 700 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/titanium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/titanium.json index b52faf7ca1..efaa7690f8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/titanium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/titanium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/titanium" - }, + "ingredient": "#c:storage_blocks/titanium", "mass": 500 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/transcendium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/transcendium.json index c096fcabca..ec02d61a6b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/transcendium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/transcendium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/transcendium" - }, + "ingredient": "#c:storage_blocks/transcendium", "mass": 25000 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tungsten.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tungsten.json index 2be18d8b6d..e37fe1834c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tungsten.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/tungsten.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/tungsten" - }, + "ingredient": "#c:storage_blocks/tungsten", "mass": 1900 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/uranium.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/uranium.json index 858076a07a..7189cc2ddc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/uranium.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/uranium.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/uranium" - }, + "ingredient": "#c:storage_blocks/uranium", "mass": 1800 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/zinc.json b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/zinc.json index dfb8712224..61ff85a52e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/zinc.json +++ b/src/generated/resources/data/anvilcraft/recipe/mass_inject/c_storage_blocks/zinc.json @@ -9,8 +9,6 @@ } ], "type": "anvilcraft:mass_inject", - "ingredient": { - "tag": "c:storage_blocks/zinc" - }, + "ingredient": "#c:storage_blocks/zinc", "mass": 700 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/mob_transform_with_item/zombie_to_giant_anvil.json b/src/generated/resources/data/anvilcraft/recipe/mob_transform_with_item/zombie_to_giant_anvil.json index c0f3a468cb..2088298be0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/mob_transform_with_item/zombie_to_giant_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/mob_transform_with_item/zombie_to_giant_anvil.json @@ -8,7 +8,6 @@ ], "input": "minecraft:zombie", "item_result": { - "count": 1, "id": "anvilcraft:giant_anvil" }, "special_result": { diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/acceleration_ring.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/acceleration_ring.json index 52c4e23900..fab81d80d5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/acceleration_ring.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/acceleration_ring.json @@ -34,7 +34,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:acceleration_ring" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/deflection_ring.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/deflection_ring.json index 9088409e62..05e37f3e10 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/deflection_ring.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/deflection_ring.json @@ -28,7 +28,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:deflection_ring" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/diamond_block.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/diamond_block.json index f393c9de22..7c1493e8dc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/diamond_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/diamond_block.json @@ -25,7 +25,6 @@ } }, "result": { - "count": 1, "id": "minecraft:diamond_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_1.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_1.json index 26c7d552e8..6245ff53c2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_1.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_1.json @@ -79,7 +79,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:giant_anvil" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_2.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_2.json index c983f4d6e6..4729ae18c3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_2.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/giant_anvil_2.json @@ -31,7 +31,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:giant_anvil" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/large_cake.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/large_cake.json index 3c38ae426a..b5ea121378 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/large_cake.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/large_cake.json @@ -31,7 +31,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:large_cake" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_1.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_1.json index 4671e049e3..f89840b841 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_1.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_1.json @@ -25,7 +25,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:large_fluid_tank" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_2.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_2.json index 0895607fb7..25f02dba21 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_2.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/large_fluid_tank_2.json @@ -25,7 +25,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:large_fluid_tank" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge.json index ba1b48d074..2c4c2bf9c0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge.json @@ -28,7 +28,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:menger_sponge" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge_2.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge_2.json index 359a68b955..e9c423e8a4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge_2.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/menger_sponge_2.json @@ -109,7 +109,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:menger_sponge" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/shulker_container.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/shulker_container.json index 6887313088..0e26eb0dad 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/shulker_container.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/shulker_container.json @@ -28,7 +28,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:shulker_container" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock/singularity_crystal.json b/src/generated/resources/data/anvilcraft/recipe/multiblock/singularity_crystal.json index 586948bc1d..127e625929 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock/singularity_crystal.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock/singularity_crystal.json @@ -28,7 +28,6 @@ } }, "result": { - "count": 1, "id": "anvilcraft:singularity_crystal" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiblock_conversion/spawner.json b/src/generated/resources/data/anvilcraft/recipe/multiblock_conversion/spawner.json index 6bc403f690..89371dddf1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiblock_conversion/spawner.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiblock_conversion/spawner.json @@ -23,13 +23,13 @@ "block": "anvilcraft:cursed_gold_block" }, "B": { - "block": "minecraft:chain", + "block": "minecraft:iron_chain", "properties": { "axis": "x" } }, "C": { - "block": "minecraft:chain", + "block": "minecraft:iron_chain", "properties": { "axis": "z" } @@ -38,7 +38,7 @@ "block": "minecraft:soul_fire" }, "E": { - "block": "minecraft:chain", + "block": "minecraft:iron_chain", "properties": { "axis": "y" } diff --git a/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_block.json b/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_block.json index 79898ae249..40c3d3bf0d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:multiphase_matter" - } + "A": "anvilcraft:multiphase_matter" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:multiphase_matter_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_from_block.json b/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_from_block.json index ec60d873dd..33d6a280f5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiphase_matter_from_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:multiphase_matter_block" - } + "anvilcraft:multiphase_matter_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/multiphase_transcendium.json b/src/generated/resources/data/anvilcraft/recipe/multiphase_transcendium.json index ef6b71c1ae..983cf3718e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/multiphase_transcendium.json +++ b/src/generated/resources/data/anvilcraft/recipe/multiphase_transcendium.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:transcendium_ingot" - }, - "base": { - "item": "anvilcraft:multiphase_matter" - }, + "addition": "anvilcraft:transcendium_ingot", + "base": "anvilcraft:multiphase_matter", "result": { - "count": 1, "id": "anvilcraft:multiphase_transcendium" }, - "template": { - "item": "anvilcraft:transcendium_upgrade_smithing_template" - } + "template": "anvilcraft:transcendium_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/negative_matter.json b/src/generated/resources/data/anvilcraft/recipe/negative_matter.json index e77ef02a07..eb0d66128e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/negative_matter.json +++ b/src/generated/resources/data/anvilcraft/recipe/negative_matter.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:negative_matter_nugget" - } + "A": "anvilcraft:negative_matter_nugget" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:negative_matter" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/negative_matter_block.json b/src/generated/resources/data/anvilcraft/recipe/negative_matter_block.json index 6c0aae38e1..e9b2aaf8b5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/negative_matter_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/negative_matter_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:negative_matter" - } + "A": "anvilcraft:negative_matter" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:negative_matter_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/negative_matter_from_block.json b/src/generated/resources/data/anvilcraft/recipe/negative_matter_from_block.json index 13ea1b4075..91a43367ba 100644 --- a/src/generated/resources/data/anvilcraft/recipe/negative_matter_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/negative_matter_from_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:negative_matter_block" - } + "anvilcraft:negative_matter_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/negative_matter_nugget_from_ingot.json b/src/generated/resources/data/anvilcraft/recipe/negative_matter_nugget_from_ingot.json index 265e4ef033..e55f971fd1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/negative_matter_nugget_from_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/negative_matter_nugget_from_ingot.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:negative_matter" - } + "anvilcraft:negative_matter" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/neoforge.json b/src/generated/resources/data/anvilcraft/recipe/neoforge.json index 598cbd5603..bb6104d013 100644 --- a/src/generated/resources/data/anvilcraft/recipe/neoforge.json +++ b/src/generated/resources/data/anvilcraft/recipe/neoforge.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:cake_block" - }, - "B": { - "item": "anvilcraft:creamy_bread_roll" - } + "A": "anvilcraft:cake_block", + "B": "anvilcraft:creamy_bread_roll" }, "pattern": [ "AAA", @@ -15,7 +11,6 @@ "BBB" ], "result": { - "count": 1, "id": "anvilcraft:neoforge" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/netherite_crystal_nucleus.json b/src/generated/resources/data/anvilcraft/recipe/netherite_crystal_nucleus.json index a3a398897d..276a9a63e8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/netherite_crystal_nucleus.json +++ b/src/generated/resources/data/anvilcraft/recipe/netherite_crystal_nucleus.json @@ -2,18 +2,13 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "tag": "c:plates/tungsten" - }, - "B": { - "item": "minecraft:netherite_scrap" - } + "A": "#c:plates/tungsten", + "B": "minecraft:netherite_scrap" }, "pattern": [ "ABA" ], "result": { - "count": 1, "id": "anvilcraft:netherite_crystal_nucleus" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/netherrack.json b/src/generated/resources/data/anvilcraft/recipe/netherrack.json new file mode 100644 index 0000000000..83adfa9040 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/netherrack.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.0, + "ingredient": "anvilcraft:rotten_flesh_block", + "result": { + "id": "minecraft:netherrack" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/neutron_irradiator.json b/src/generated/resources/data/anvilcraft/recipe/neutron_irradiator.json index c59076d2ec..69acfc76c4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/neutron_irradiator.json +++ b/src/generated/resources/data/anvilcraft/recipe/neutron_irradiator.json @@ -3,22 +3,12 @@ "category": "misc", "key": { "A": [ - { - "item": "anvilcraft:neutronium_ingot" - }, - { - "item": "anvilcraft:charged_neutronium_ingot" - }, - { - "item": "anvilcraft:stable_neutronium_ingot" - } + "anvilcraft:neutronium_ingot", + "anvilcraft:charged_neutronium_ingot", + "anvilcraft:stable_neutronium_ingot" ], - "B": { - "item": "anvilcraft:ember_metal_ingot" - }, - "C": { - "item": "anvilcraft:negative_matter_block" - } + "B": "anvilcraft:ember_metal_ingot", + "C": "anvilcraft:negative_matter_block" }, "pattern": [ " A ", @@ -26,7 +16,6 @@ "BBB" ], "result": { - "count": 1, "id": "anvilcraft:neutron_irradiator" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/null/neutron_irradation/uranium_block_explosion.json b/src/generated/resources/data/anvilcraft/recipe/null/neutron_irradation/uranium_block_explosion.json new file mode 100644 index 0000000000..0b2e2cc166 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/null/neutron_irradation/uranium_block_explosion.json @@ -0,0 +1,69 @@ +{ + "type": "anvillib_recipe:in_world_recipe", + "compatible": true, + "conflicting": [ + { + "type": "anvillib_recipe:has_item_ingredient", + "item": { + "items": "anvilcraft:uranium_block" + }, + "offset": [ + 0.0, + -0.375, + 0.0 + ], + "range": [ + 0.75, + 0.75, + 0.75 + ] + } + ], + "icon": { + "id": "minecraft:anvil" + }, + "non_conflicting": [ + { + "type": "anvilcraft:has_cauldron", + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "anvillib_recipe:has_block", + "offset": [ + 0.0, + -2.0, + 0.0 + ], + "predicate": { + "blocks": "anvilcraft:neutron_irradiator" + } + } + ], + "outcomes": [ + { + "type": "anvillib_recipe:choose_one", + "choices": [ + { + "outcome": { + "type": "anvillib_recipe:produce_explosion", + "fire": false, + "interact": "block", + "offset": [ + 0.0, + -0.75, + 0.0 + ], + "power": 3.0 + }, + "weight": 1.0 + } + ] + } + ], + "priority": 5, + "trigger": "anvilcraft:on_anvil_fall_on" +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..b8fd928435 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:orange_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:orange_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..db053fbb95 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:orange_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:orange_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_wall.json new file mode 100644 index 0000000000..ba7708fb91 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/orange_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:orange_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:orange_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/overseer.json b/src/generated/resources/data/anvilcraft/recipe/overseer.json index bd5d1bf4fe..74dad1e8da 100644 --- a/src/generated/resources/data/anvilcraft/recipe/overseer.json +++ b/src/generated/resources/data/anvilcraft/recipe/overseer.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:obsidian" - }, - "B": { - "item": "minecraft:ender_eye" - }, - "C": { - "item": "anvilcraft:royal_steel_block" - } + "A": "minecraft:obsidian", + "B": "minecraft:ender_eye", + "C": "anvilcraft:royal_steel_block" }, "pattern": [ "ABA", @@ -18,7 +12,6 @@ "CBC" ], "result": { - "count": 1, "id": "anvilcraft:overseer" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_axe_and_royal_steel_axe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_axe_and_royal_steel_axe.json index 050241fd2c..39b852f8e0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_axe_and_royal_steel_axe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_axe_and_royal_steel_axe.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "minecraft:diamond_axe", - "anvilcraft:royal_steel_axe" + { + "id": "minecraft:diamond_axe" + }, + { + "id": "anvilcraft:royal_steel_axe" + } ], "material": { "items": "anvilcraft:royal_steel_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_hoe_and_royal_steel_hoe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_hoe_and_royal_steel_hoe.json index 9f11b17394..c1c10bc889 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_hoe_and_royal_steel_hoe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_hoe_and_royal_steel_hoe.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "minecraft:diamond_hoe", - "anvilcraft:royal_steel_hoe" + { + "id": "minecraft:diamond_hoe" + }, + { + "id": "anvilcraft:royal_steel_hoe" + } ], "material": { "items": "anvilcraft:royal_steel_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_pickaxe_and_royal_steel_pickaxe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_pickaxe_and_royal_steel_pickaxe.json index a01098141e..02c2922698 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_pickaxe_and_royal_steel_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_pickaxe_and_royal_steel_pickaxe.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "minecraft:diamond_pickaxe", - "anvilcraft:royal_steel_pickaxe" + { + "id": "minecraft:diamond_pickaxe" + }, + { + "id": "anvilcraft:royal_steel_pickaxe" + } ], "material": { "items": "anvilcraft:royal_steel_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_shovel_and_royal_steel_shovel.json b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_shovel_and_royal_steel_shovel.json index 5529a37732..652a9657b0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_shovel_and_royal_steel_shovel.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_shovel_and_royal_steel_shovel.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "minecraft:diamond_shovel", - "anvilcraft:royal_steel_shovel" + { + "id": "minecraft:diamond_shovel" + }, + { + "id": "anvilcraft:royal_steel_shovel" + } ], "material": { "items": "anvilcraft:royal_steel_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_sword_and_royal_steel_sword.json b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_sword_and_royal_steel_sword.json index 558dd81ddc..3f3d9b2369 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_sword_and_royal_steel_sword.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/diamond_sword_and_royal_steel_sword.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "minecraft:diamond_sword", - "anvilcraft:royal_steel_sword" + { + "id": "minecraft:diamond_sword" + }, + { + "id": "anvilcraft:royal_steel_sword" + } ], "material": { "items": "anvilcraft:royal_steel_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_anvil_and_ember_anvil.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_anvil_and_ember_anvil.json index 6237c81252..dcc8d6c18f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_anvil_and_ember_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_anvil_and_ember_anvil.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "anvilcraft:frost_anvil", - "anvilcraft:ember_anvil" + { + "id": "anvilcraft:frost_anvil" + }, + { + "id": "anvilcraft:ember_anvil" + } ], "material": { "items": "anvilcraft:multiphase_matter_block" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_grindstone_and_ember_grindstone.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_grindstone_and_ember_grindstone.json index e5fd5177aa..e27bdf692c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_grindstone_and_ember_grindstone.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_grindstone_and_ember_grindstone.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "anvilcraft:frost_grindstone", - "anvilcraft:ember_grindstone" + { + "id": "anvilcraft:frost_grindstone" + }, + { + "id": "anvilcraft:ember_grindstone" + } ], "material": { "items": "anvilcraft:multiphase_matter_block" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_axe_and_ember_metal_axe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_axe_and_ember_metal_axe.json index dd25d555f3..03707273f3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_axe_and_ember_metal_axe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_axe_and_ember_metal_axe.json @@ -10,7 +10,9 @@ ] } ], - "result": "anvilcraft:frost_metal_axe" + "result": { + "id": "anvilcraft:frost_metal_axe" + } }, { "modifiers": [ @@ -25,7 +27,7 @@ "dest": { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, "input": "input.0", "orig": "anvilcraft:merciless_enchantments" @@ -37,10 +39,15 @@ ] } ], - "result": "anvilcraft:ember_metal_axe" + "result": { + "id": "anvilcraft:ember_metal_axe" + } } ], "material": { "items": "anvilcraft:multiphase_matter" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_heavy_halberd_and_ember_metal_heavy_halberd.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_heavy_halberd_and_ember_metal_heavy_halberd.json index 57e4aecc9a..66d8483875 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_heavy_halberd_and_ember_metal_heavy_halberd.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_heavy_halberd_and_ember_metal_heavy_halberd.json @@ -10,7 +10,9 @@ ] } ], - "result": "anvilcraft:frost_metal_heavy_halberd" + "result": { + "id": "anvilcraft:frost_metal_heavy_halberd" + } }, { "modifiers": [ @@ -25,7 +27,7 @@ "dest": { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, "input": "input.0", "orig": "anvilcraft:merciless_enchantments" @@ -37,10 +39,15 @@ ] } ], - "result": "anvilcraft:ember_metal_heavy_halberd" + "result": { + "id": "anvilcraft:ember_metal_heavy_halberd" + } } ], "material": { "items": "anvilcraft:multiphase_matter" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_hoe_and_ember_metal_hoe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_hoe_and_ember_metal_hoe.json index 3b5736ce47..aa1bc88c99 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_hoe_and_ember_metal_hoe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_hoe_and_ember_metal_hoe.json @@ -10,7 +10,9 @@ ] } ], - "result": "anvilcraft:frost_metal_hoe" + "result": { + "id": "anvilcraft:frost_metal_hoe" + } }, { "modifiers": [ @@ -25,7 +27,7 @@ "dest": { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, "input": "input.0", "orig": "anvilcraft:merciless_enchantments" @@ -37,10 +39,15 @@ ] } ], - "result": "anvilcraft:ember_metal_hoe" + "result": { + "id": "anvilcraft:ember_metal_hoe" + } } ], "material": { "items": "anvilcraft:multiphase_matter" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_pickaxe_and_ember_metal_pickaxe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_pickaxe_and_ember_metal_pickaxe.json index 44af659c43..a4caa0a1cc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_pickaxe_and_ember_metal_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_pickaxe_and_ember_metal_pickaxe.json @@ -10,7 +10,9 @@ ] } ], - "result": "anvilcraft:frost_metal_pickaxe" + "result": { + "id": "anvilcraft:frost_metal_pickaxe" + } }, { "modifiers": [ @@ -25,7 +27,7 @@ "dest": { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, "input": "input.0", "orig": "anvilcraft:merciless_enchantments" @@ -37,10 +39,15 @@ ] } ], - "result": "anvilcraft:ember_metal_pickaxe" + "result": { + "id": "anvilcraft:ember_metal_pickaxe" + } } ], "material": { "items": "anvilcraft:multiphase_matter" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_resonator_and_ember_metal_resonator.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_resonator_and_ember_metal_resonator.json index b1f40480ac..dc938aac9f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_resonator_and_ember_metal_resonator.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_resonator_and_ember_metal_resonator.json @@ -10,7 +10,9 @@ ] } ], - "result": "anvilcraft:frost_metal_resonator" + "result": { + "id": "anvilcraft:frost_metal_resonator" + } }, { "modifiers": [ @@ -25,7 +27,7 @@ "dest": { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, "input": "input.0", "orig": "anvilcraft:merciless_enchantments" @@ -37,10 +39,15 @@ ] } ], - "result": "anvilcraft:ember_metal_resonator" + "result": { + "id": "anvilcraft:ember_metal_resonator" + } } ], "material": { "items": "anvilcraft:multiphase_matter" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_shovel_and_ember_metal_shovel.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_shovel_and_ember_metal_shovel.json index e76e9b6b13..1f2631b8a5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_shovel_and_ember_metal_shovel.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_shovel_and_ember_metal_shovel.json @@ -10,7 +10,9 @@ ] } ], - "result": "anvilcraft:frost_metal_shovel" + "result": { + "id": "anvilcraft:frost_metal_shovel" + } }, { "modifiers": [ @@ -25,7 +27,7 @@ "dest": { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, "input": "input.0", "orig": "anvilcraft:merciless_enchantments" @@ -37,10 +39,15 @@ ] } ], - "result": "anvilcraft:ember_metal_shovel" + "result": { + "id": "anvilcraft:ember_metal_shovel" + } } ], "material": { "items": "anvilcraft:multiphase_matter" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_sword_and_ember_metal_sword.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_sword_and_ember_metal_sword.json index 0b22d5b3ab..755bb3e1d2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_sword_and_ember_metal_sword.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_metal_sword_and_ember_metal_sword.json @@ -10,7 +10,9 @@ ] } ], - "result": "anvilcraft:frost_metal_sword" + "result": { + "id": "anvilcraft:frost_metal_sword" + } }, { "modifiers": [ @@ -25,7 +27,7 @@ "dest": { "type": "anvilcraft:item_enchantments", "component": "minecraft:enchantments", - "input": 0 + "input": "input.0" }, "input": "input.0", "orig": "anvilcraft:merciless_enchantments" @@ -37,10 +39,15 @@ ] } ], - "result": "anvilcraft:ember_metal_sword" + "result": { + "id": "anvilcraft:ember_metal_sword" + } } ], "material": { "items": "anvilcraft:multiphase_matter" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_smithing_table_and_ember_smithing_table.json b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_smithing_table_and_ember_smithing_table.json index 26fa5efc2a..3eeb0a9ba2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/frost_smithing_table_and_ember_smithing_table.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/frost_smithing_table_and_ember_smithing_table.json @@ -1,10 +1,17 @@ { "type": "anvilcraft:permutation", "inputs": [ - "anvilcraft:frost_smithing_table", - "anvilcraft:ember_smithing_table" + { + "id": "anvilcraft:frost_smithing_table" + }, + { + "id": "anvilcraft:ember_smithing_table" + } ], "material": { "items": "anvilcraft:multiphase_matter_block" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/gem_amulets.json b/src/generated/resources/data/anvilcraft/recipe/permutation/gem_amulets.json index 60939d7576..abe400c98d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/gem_amulets.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/gem_amulets.json @@ -1,12 +1,23 @@ { "type": "anvilcraft:permutation", "inputs": [ - "anvilcraft:emerald_amulet", - "anvilcraft:topaz_amulet", - "anvilcraft:ruby_amulet", - "anvilcraft:sapphire_amulet" + { + "id": "anvilcraft:emerald_amulet" + }, + { + "id": "anvilcraft:topaz_amulet" + }, + { + "id": "anvilcraft:ruby_amulet" + }, + { + "id": "anvilcraft:sapphire_amulet" + } ], "material": { "items": "anvilcraft:chromatic_stone" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_axe_and_ember_metal_axe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_axe_and_ember_metal_axe.json index e65de9345c..0b7d61de28 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_axe_and_ember_metal_axe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_axe_and_ember_metal_axe.json @@ -10,11 +10,18 @@ ] } ], - "result": "minecraft:netherite_axe" + "result": { + "id": "minecraft:netherite_axe" + } }, - "anvilcraft:ember_metal_axe" + { + "id": "anvilcraft:ember_metal_axe" + } ], "material": { "items": "anvilcraft:ember_metal_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_hoe_and_ember_metal_hoe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_hoe_and_ember_metal_hoe.json index e3627bb105..19936983a7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_hoe_and_ember_metal_hoe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_hoe_and_ember_metal_hoe.json @@ -10,11 +10,18 @@ ] } ], - "result": "minecraft:netherite_hoe" + "result": { + "id": "minecraft:netherite_hoe" + } }, - "anvilcraft:ember_metal_hoe" + { + "id": "anvilcraft:ember_metal_hoe" + } ], "material": { "items": "anvilcraft:ember_metal_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_pickaxe_and_ember_metal_pickaxe.json b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_pickaxe_and_ember_metal_pickaxe.json index eee62d861d..17221569a2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_pickaxe_and_ember_metal_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_pickaxe_and_ember_metal_pickaxe.json @@ -10,11 +10,18 @@ ] } ], - "result": "minecraft:netherite_pickaxe" + "result": { + "id": "minecraft:netherite_pickaxe" + } }, - "anvilcraft:ember_metal_pickaxe" + { + "id": "anvilcraft:ember_metal_pickaxe" + } ], "material": { "items": "anvilcraft:ember_metal_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_shovel_and_ember_metal_shovel.json b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_shovel_and_ember_metal_shovel.json index 869a5fe7f1..087ae8684b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_shovel_and_ember_metal_shovel.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_shovel_and_ember_metal_shovel.json @@ -10,11 +10,18 @@ ] } ], - "result": "minecraft:netherite_shovel" + "result": { + "id": "minecraft:netherite_shovel" + } }, - "anvilcraft:ember_metal_shovel" + { + "id": "anvilcraft:ember_metal_shovel" + } ], "material": { "items": "anvilcraft:ember_metal_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_sword_and_ember_metal_sword.json b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_sword_and_ember_metal_sword.json index f6379e2b40..f6371c0c65 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_sword_and_ember_metal_sword.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation/netherite_sword_and_ember_metal_sword.json @@ -10,11 +10,18 @@ ] } ], - "result": "minecraft:netherite_sword" + "result": { + "id": "minecraft:netherite_sword" + } }, - "anvilcraft:ember_metal_sword" + { + "id": "anvilcraft:ember_metal_sword" + } ], "material": { "items": "anvilcraft:ember_metal_ingot" + }, + "template": { + "items": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/permutation_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/permutation_smithing_template.json index 0e280036ce..2ec02df2e9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/permutation_smithing_template.json +++ b/src/generated/resources/data/anvilcraft/recipe/permutation_smithing_template.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "E": { - "item": "anvilcraft:earth_core_shard" - }, - "T": { - "tag": "anvilcraft:templates" - }, - "V": { - "item": "anvilcraft:void_matter" - } + "E": "anvilcraft:earth_core_shard", + "T": "#anvilcraft:templates", + "V": "anvilcraft:void_matter" }, "pattern": [ "EEE", @@ -18,7 +12,6 @@ "VVV" ], "result": { - "count": 1, "id": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal.json b/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal.json index c42f627e8c..9aaa140b88 100644 --- a/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal.json +++ b/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal.json @@ -3,12 +3,8 @@ "category": "misc", "group": "anvilcraft:piezoelectric_crystal", "key": { - "A": { - "item": "minecraft:copper_ingot" - }, - "B": { - "item": "minecraft:quartz_block" - } + "A": "minecraft:copper_ingot", + "B": "minecraft:quartz_block" }, "pattern": [ "ABA", diff --git a/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal_amethyst.json b/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal_amethyst.json index eb1e28a4a7..c9f5173b6c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal_amethyst.json +++ b/src/generated/resources/data/anvilcraft/recipe/piezoelectric_crystal_amethyst.json @@ -3,12 +3,8 @@ "category": "misc", "group": "anvilcraft:piezoelectric_crystal", "key": { - "A": { - "item": "minecraft:copper_ingot" - }, - "B": { - "item": "minecraft:amethyst_block" - } + "A": "minecraft:copper_ingot", + "B": "minecraft:amethyst_block" }, "pattern": [ "ABA", diff --git a/src/generated/resources/data/anvilcraft/recipe/pill.json b/src/generated/resources/data/anvilcraft/recipe/pill.json index 301b93c9d6..f954c25fcb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/pill.json +++ b/src/generated/resources/data/anvilcraft/recipe/pill.json @@ -1,4 +1,3 @@ { - "type": "anvilcraft:pill_recipe", - "category": "misc" + "type": "anvilcraft:pill_recipe" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/pill_box.json b/src/generated/resources/data/anvilcraft/recipe/pill_box.json index 50207b816b..14d7413d4d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/pill_box.json +++ b/src/generated/resources/data/anvilcraft/recipe/pill_box.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:hardend_resin" - }, - "B": { - "item": "anvilcraft:pill" - } + "A": "anvilcraft:hardend_resin", + "B": "anvilcraft:pill" }, "pattern": [ "AAA", @@ -15,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:pill_box" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..e8a081ab50 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:pink_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:pink_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..556ef50996 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:pink_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:pink_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1531dd23ea --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/pink_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:pink_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:pink_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/plutonium_block.json b/src/generated/resources/data/anvilcraft/recipe/plutonium_block.json index cba54346ea..779ee45c9f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/plutonium_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/plutonium_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/plutonium" - } + "A": "#c:ingots/plutonium" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:plutonium_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_block.json index 82a4c5ad67..1507c04b87 100644 --- a/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:plutonium_ingot", "ingredients": [ - { - "item": "anvilcraft:plutonium_block" - } + "anvilcraft:plutonium_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_nuggets.json b/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_nuggets.json index 02718289cf..de52537980 100644 --- a/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_nuggets.json +++ b/src/generated/resources/data/anvilcraft/recipe/plutonium_ingot_from_nuggets.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:plutonium_ingot", "key": { - "A": { - "tag": "c:nuggets/plutonium" - } + "A": "#c:nuggets/plutonium" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:plutonium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/plutonium_nugget_from_ingot.json b/src/generated/resources/data/anvilcraft/recipe/plutonium_nugget_from_ingot.json index a1adf372f0..8f33a753c8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/plutonium_nugget_from_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/plutonium_nugget_from_ingot.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/plutonium" - } + "#c:ingots/plutonium" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/plutonium_pressure_plate_from_ingots_plutonium.json b/src/generated/resources/data/anvilcraft/recipe/plutonium_pressure_plate_from_ingots_plutonium.json index 76175a8532..9c0bb5c965 100644 --- a/src/generated/resources/data/anvilcraft/recipe/plutonium_pressure_plate_from_ingots_plutonium.json +++ b/src/generated/resources/data/anvilcraft/recipe/plutonium_pressure_plate_from_ingots_plutonium.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/plutonium" - } + "A": "#c:ingots/plutonium" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:plutonium_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/power_converter_big.json b/src/generated/resources/data/anvilcraft/recipe/power_converter_big.json index fed7d4eaff..f2d1aed958 100644 --- a/src/generated/resources/data/anvilcraft/recipe/power_converter_big.json +++ b/src/generated/resources/data/anvilcraft/recipe/power_converter_big.json @@ -2,19 +2,14 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:magnetoelectric_core" - }, - "B": { - "item": "minecraft:copper_block" - } + "A": "anvilcraft:magnetoelectric_core", + "B": "minecraft:copper_block" }, "pattern": [ "A", "B" ], "result": { - "count": 1, "id": "anvilcraft:power_converter_big" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_middle.json b/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_middle.json index daf7f2e9b9..be0e6e5dc1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_middle.json +++ b/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_middle.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:power_converter_middle" - } + "A": "anvilcraft:power_converter_middle" }, "pattern": [ "A", @@ -12,7 +10,6 @@ "A" ], "result": { - "count": 1, "id": "anvilcraft:power_converter_big" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_small.json b/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_small.json index f4a34de3f8..d63a8aad21 100644 --- a/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_small.json +++ b/src/generated/resources/data/anvilcraft/recipe/power_converter_big_from_small.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:power_converter_small" - } + "A": "anvilcraft:power_converter_small" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:power_converter_big" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/power_converter_middle_from_small.json b/src/generated/resources/data/anvilcraft/recipe/power_converter_middle_from_small.json index 608ac9c507..274f1504c4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/power_converter_middle_from_small.json +++ b/src/generated/resources/data/anvilcraft/recipe/power_converter_middle_from_small.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:power_converter_small" - } + "A": "anvilcraft:power_converter_small" }, "pattern": [ "A", @@ -12,7 +10,6 @@ "A" ], "result": { - "count": 1, "id": "anvilcraft:power_converter_middle" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/powered_sliding_rail.json b/src/generated/resources/data/anvilcraft/recipe/powered_sliding_rail.json index 3deee96796..c425695c29 100644 --- a/src/generated/resources/data/anvilcraft/recipe/powered_sliding_rail.json +++ b/src/generated/resources/data/anvilcraft/recipe/powered_sliding_rail.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "P": { - "item": "minecraft:piston" - }, - "S": { - "item": "anvilcraft:sliding_rail" - } + "P": "minecraft:piston", + "S": "anvilcraft:sliding_rail" }, "pattern": [ "SSS", diff --git a/src/generated/resources/data/anvilcraft/recipe/processor.json b/src/generated/resources/data/anvilcraft/recipe/processor.json index c513674a31..3d2f6efbd5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/processor.json +++ b/src/generated/resources/data/anvilcraft/recipe/processor.json @@ -3,15 +3,9 @@ "category": "misc", "group": "anvilcraft:processor", "key": { - "A": { - "item": "minecraft:comparator" - }, - "B": { - "item": "anvilcraft:hardend_resin" - }, - "C": { - "tag": "c:nuggets/copper" - } + "A": "minecraft:comparator", + "B": "anvilcraft:hardend_resin", + "C": "#c:nuggets/copper" }, "pattern": [ " ", @@ -19,7 +13,6 @@ "BBB" ], "result": { - "count": 1, "id": "anvilcraft:processor" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/propel_piston.json b/src/generated/resources/data/anvilcraft/recipe/propel_piston.json index a6d1a05368..40a8dc226e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/propel_piston.json +++ b/src/generated/resources/data/anvilcraft/recipe/propel_piston.json @@ -2,21 +2,11 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "anvilcraft:ionocraft" - }, - "B": { - "item": "anvilcraft:capacitor" - }, - "C": { - "item": "minecraft:iron_ingot" - }, - "D": { - "item": "minecraft:piston" - }, - "E": { - "item": "anvilcraft:ruby" - } + "A": "anvilcraft:ionocraft", + "B": "anvilcraft:capacitor", + "C": "minecraft:iron_ingot", + "D": "minecraft:piston", + "E": "anvilcraft:ruby" }, "pattern": [ "CDC", @@ -25,9 +15,10 @@ ], "result": { "components": { - "anvilcraft:stored_energy": 4000 + "anvilcraft:stored_energy": { + "energy": 4000 + } }, - "count": 1, "id": "anvilcraft:propel_piston" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/pulse_generator.json b/src/generated/resources/data/anvilcraft/recipe/pulse_generator.json index d178edf572..935610f386 100644 --- a/src/generated/resources/data/anvilcraft/recipe/pulse_generator.json +++ b/src/generated/resources/data/anvilcraft/recipe/pulse_generator.json @@ -2,25 +2,16 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "B": { - "item": "anvilcraft:circuit_board" - }, - "C": { - "item": "minecraft:clock" - }, - "I": { - "item": "minecraft:iron_ingot" - }, - "R": { - "item": "minecraft:redstone_torch" - } + "B": "anvilcraft:circuit_board", + "C": "minecraft:clock", + "I": "minecraft:iron_ingot", + "R": "minecraft:redstone_torch" }, "pattern": [ "BCR", "III" ], "result": { - "count": 1, "id": "anvilcraft:pulse_generator" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..db2151cc3f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:purple_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:purple_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..7945ca4827 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:purple_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:purple_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_wall.json new file mode 100644 index 0000000000..77b73560fa --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/purple_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:purple_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:purple_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_lead.json b/src/generated/resources/data/anvilcraft/recipe/raw_lead.json index eb3b9943fc..b7c4e0a931 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_lead.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_lead.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:raw_lead_block" - } + "anvilcraft:raw_lead_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_lead_block.json b/src/generated/resources/data/anvilcraft/recipe/raw_lead_block.json index f9e4486767..e89f631479 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_lead_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_lead_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:raw_lead" - } + "A": "anvilcraft:raw_lead" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:raw_lead_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_silver.json b/src/generated/resources/data/anvilcraft/recipe/raw_silver.json index e44a064599..4fd2226ea7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_silver.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_silver.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:raw_silver_block" - } + "anvilcraft:raw_silver_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_silver_block.json b/src/generated/resources/data/anvilcraft/recipe/raw_silver_block.json index cce7dacdd7..1f8627074b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_silver_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_silver_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:raw_silver" - } + "A": "anvilcraft:raw_silver" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:raw_silver_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_tin.json b/src/generated/resources/data/anvilcraft/recipe/raw_tin.json index dfeabb9b3f..31cae6be28 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_tin.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_tin.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:raw_tin_block" - } + "anvilcraft:raw_tin_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_tin_block.json b/src/generated/resources/data/anvilcraft/recipe/raw_tin_block.json index 8e3822fe55..50b2f5dfab 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_tin_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_tin_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:raw_tin" - } + "A": "anvilcraft:raw_tin" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:raw_tin_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_titanium.json b/src/generated/resources/data/anvilcraft/recipe/raw_titanium.json index 534bda2203..cd0cb2ed43 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_titanium.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_titanium.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:raw_titanium_block" - } + "anvilcraft:raw_titanium_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_titanium_block.json b/src/generated/resources/data/anvilcraft/recipe/raw_titanium_block.json index 6f8b838518..7b811751fe 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_titanium_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_titanium_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:raw_titanium" - } + "A": "anvilcraft:raw_titanium" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:raw_titanium_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_tungsten.json b/src/generated/resources/data/anvilcraft/recipe/raw_tungsten.json index f77f9538e4..7589e9da6b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_tungsten.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_tungsten.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:raw_tungsten_block" - } + "anvilcraft:raw_tungsten_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_tungsten_block.json b/src/generated/resources/data/anvilcraft/recipe/raw_tungsten_block.json index af50f51c6b..5ae28b62be 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_tungsten_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_tungsten_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:raw_tungsten" - } + "A": "anvilcraft:raw_tungsten" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:raw_tungsten_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_uranium.json b/src/generated/resources/data/anvilcraft/recipe/raw_uranium.json index 2b041141b6..b53710451e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_uranium.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_uranium.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:raw_uranium_block" - } + "anvilcraft:raw_uranium_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_uranium_block.json b/src/generated/resources/data/anvilcraft/recipe/raw_uranium_block.json index 42585cd514..c03f58606e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_uranium_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_uranium_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:raw_uranium" - } + "A": "anvilcraft:raw_uranium" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:raw_uranium_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_zinc.json b/src/generated/resources/data/anvilcraft/recipe/raw_zinc.json index 9b7b51e90b..d8c94d39ba 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_zinc.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_zinc.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:raw_zinc_block" - } + "anvilcraft:raw_zinc_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/raw_zinc_block.json b/src/generated/resources/data/anvilcraft/recipe/raw_zinc_block.json index 0b983d0699..347e5f14ab 100644 --- a/src/generated/resources/data/anvilcraft/recipe/raw_zinc_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/raw_zinc_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:raw_zinc" - } + "A": "anvilcraft:raw_zinc" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:raw_zinc_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/recovery_pearl.json b/src/generated/resources/data/anvilcraft/recipe/recovery_pearl.json index 31153ef526..2395d17f04 100644 --- a/src/generated/resources/data/anvilcraft/recipe/recovery_pearl.json +++ b/src/generated/resources/data/anvilcraft/recipe/recovery_pearl.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "minecraft:ender_pearl" - }, - "B": { - "item": "minecraft:echo_shard" - } + "A": "minecraft:ender_pearl", + "B": "minecraft:echo_shard" }, "pattern": [ " B ", @@ -15,7 +11,6 @@ " B " ], "result": { - "count": 1, "id": "anvilcraft:recovery_pearl" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..9daf0c8c76 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:red_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:red_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..84487b6f35 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:red_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:red_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_wall.json new file mode 100644 index 0000000000..bd38e2b03a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/red_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:red_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:red_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_slab.json deleted file mode 100644 index f5dc394c4e..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_black" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_black_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_stair.json deleted file mode 100644 index a9c99b5897..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_black" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_black_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_wall.json deleted file mode 100644 index 06fba55c62..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_black_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_black" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_black_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_slab.json deleted file mode 100644 index 5c60b30568..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_blue" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_blue_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_stair.json deleted file mode 100644 index cfbf94da11..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_blue" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_blue_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_wall.json deleted file mode 100644 index cb9496e38b..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_blue_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_blue" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_slab.json deleted file mode 100644 index 6188bf71c4..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_brown" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_brown_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_stair.json deleted file mode 100644 index 97e0116955..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_brown" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_brown_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_wall.json deleted file mode 100644 index 92febed9c9..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_brown_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_brown" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_brown_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_slab.json deleted file mode 100644 index a02e13d515..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_cyan" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_cyan_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_stair.json deleted file mode 100644 index ef8a04b8df..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_cyan" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_cyan_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_wall.json deleted file mode 100644 index 416c96221d..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_cyan_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_cyan" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_cyan_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_slab.json deleted file mode 100644 index 314623d6c3..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_gray" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_gray_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_stair.json deleted file mode 100644 index ac1a915cb8..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_gray" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_gray_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_wall.json deleted file mode 100644 index 10da736dc1..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_gray_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_gray" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_slab.json deleted file mode 100644 index 3b997c3598..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_green" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_green_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_stair.json deleted file mode 100644 index 13c8cc0596..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_green" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_green_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_wall.json deleted file mode 100644 index 7158b16bb1..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_green_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_green" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_green_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index 08dbe204a3..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_light_blue" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_light_blue_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index e34d907d67..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_light_blue" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_light_blue_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_wall.json deleted file mode 100644 index d4de542f46..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_blue_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_light_blue" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_light_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index 3c13030adc..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_light_gray" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_light_gray_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index b7906b2e44..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_light_gray" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_light_gray_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_wall.json deleted file mode 100644 index 5227572912..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_light_gray_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_light_gray" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_light_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_slab.json deleted file mode 100644 index 89ad843f55..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_lime" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_lime_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_stair.json deleted file mode 100644 index 700b11cbd2..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_lime" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_lime_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_wall.json deleted file mode 100644 index e2051b0929..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_lime_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_lime" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_lime_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_slab.json deleted file mode 100644 index 756a6042fb..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_magenta" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_magenta_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_stair.json deleted file mode 100644 index 64c083df9c..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_magenta" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_magenta_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_wall.json deleted file mode 100644 index 6ff86d3b7b..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_magenta_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_magenta" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_magenta_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_slab.json deleted file mode 100644 index 8c8c7ed3f7..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_orange" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_orange_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_stair.json deleted file mode 100644 index 27ea8d8357..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_orange" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_orange_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_wall.json deleted file mode 100644 index 847f4e46b8..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_orange_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_orange" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_orange_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_slab.json deleted file mode 100644 index 586c61d562..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_pink" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_pink_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_stair.json deleted file mode 100644 index 096d4d66f8..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_pink" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_pink_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_wall.json deleted file mode 100644 index 95e75a23c2..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_pink_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_pink" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_pink_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_slab.json deleted file mode 100644 index fc9c86a253..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_purple" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_purple_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_stair.json deleted file mode 100644 index 78329fc0db..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_purple" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_purple_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_wall.json deleted file mode 100644 index fae9ce97a9..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_purple_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_purple" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_purple_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_slab.json deleted file mode 100644 index 4e52f12154..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_red" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_red_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_stair.json deleted file mode 100644 index 0ceb6eaff0..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_red" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_red_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_wall.json deleted file mode 100644 index 35e9a3fee6..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_red_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_red" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_red_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_slab.json deleted file mode 100644 index 4fe20df48b..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_white" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_white_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_stair.json deleted file mode 100644 index 146d4d2ca1..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_white" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_white_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_wall.json deleted file mode 100644 index 577fd4e699..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_white_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_white" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_white_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_slab.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_slab.json deleted file mode 100644 index 8656ff7cc9..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_yellow" - } - }, - "pattern": [ - "AAA" - ], - "result": { - "count": 6, - "id": "anvilcraft:reinforced_concrete_yellow_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_stair.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_stair.json deleted file mode 100644 index 16866694ea..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_yellow" - } - }, - "pattern": [ - "A ", - "AA ", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_yellow_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_wall.json b/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_wall.json deleted file mode 100644 index 61cd5d8b6b..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/reinforced_concrete_yellow_wall.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "building", - "key": { - "A": { - "item": "anvilcraft:reinforced_concrete_yellow" - } - }, - "pattern": [ - "AAA", - "AAA" - ], - "result": { - "count": 4, - "id": "anvilcraft:reinforced_concrete_yellow_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/remote_transmission_pole.json b/src/generated/resources/data/anvilcraft/recipe/remote_transmission_pole.json index d60e4b63a7..5fdf6a3813 100644 --- a/src/generated/resources/data/anvilcraft/recipe/remote_transmission_pole.json +++ b/src/generated/resources/data/anvilcraft/recipe/remote_transmission_pole.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:magnetoelectric_core" - }, - "B": { - "item": "anvilcraft:transmission_pole" - }, - "C": { - "item": "minecraft:anvil" - } + "A": "anvilcraft:magnetoelectric_core", + "B": "anvilcraft:transmission_pole", + "C": "minecraft:anvil" }, "pattern": [ "A", @@ -18,7 +12,6 @@ "C" ], "result": { - "count": 1, "id": "anvilcraft:remote_transmission_pole" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/repeater.json b/src/generated/resources/data/anvilcraft/recipe/repeater.json index d57698fbf3..93899e9c4d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/repeater.json +++ b/src/generated/resources/data/anvilcraft/recipe/repeater.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "B": { - "item": "anvilcraft:hardend_resin" - }, - "R": { - "item": "minecraft:redstone" - }, - "T": { - "item": "minecraft:redstone_torch" - } + "B": "anvilcraft:hardend_resin", + "R": "minecraft:redstone", + "T": "minecraft:redstone_torch" }, "pattern": [ " ", @@ -18,7 +12,6 @@ "BBB" ], "result": { - "count": 1, "id": "minecraft:repeater" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/resin.json b/src/generated/resources/data/anvilcraft/recipe/resin.json index 0051890645..ec75b6b443 100644 --- a/src/generated/resources/data/anvilcraft/recipe/resin.json +++ b/src/generated/resources/data/anvilcraft/recipe/resin.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:resin_block" - } + "anvilcraft:resin_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/resin_block.json b/src/generated/resources/data/anvilcraft/recipe/resin_block.json index ff6577055b..2ed51ab60a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/resin_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/resin_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:resin" - } + "A": "anvilcraft:resin" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:resin_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/resonator_core.json b/src/generated/resources/data/anvilcraft/recipe/resonator_core.json index 6dba31d521..dca2d14d04 100644 --- a/src/generated/resources/data/anvilcraft/recipe/resonator_core.json +++ b/src/generated/resources/data/anvilcraft/recipe/resonator_core.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "E": { - "item": "minecraft:echo_shard" - }, - "M": { - "item": "anvilcraft:multiphase_matter" - } + "A": "minecraft:amethyst_shard", + "E": "minecraft:echo_shard", + "M": "anvilcraft:multiphase_matter" }, "pattern": [ "AEA", @@ -18,7 +12,6 @@ "AEA" ], "result": { - "count": 1, "id": "anvilcraft:resonator_core" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_block.json b/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_block.json index 417dbd63fd..8d4a81fe3b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_block.json @@ -2,36 +2,17 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - }, - { - "item": "minecraft:rotten_flesh" - } + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh", + "minecraft:rotten_flesh" ], "result": { - "count": 1, "id": "anvilcraft:rotten_flesh_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_from_rotten_flesh_block.json b/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_from_rotten_flesh_block.json index 8cf83cd95e..5c5b18291f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_from_rotten_flesh_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/rotten_flesh_from_rotten_flesh_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "anvilcraft:rotten_flesh_block" - } + "anvilcraft:rotten_flesh_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/royal_dragon_rod.json b/src/generated/resources/data/anvilcraft/recipe/royal_dragon_rod.json index d32703e079..e9583d3a12 100644 --- a/src/generated/resources/data/anvilcraft/recipe/royal_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/royal_dragon_rod.json @@ -2,15 +2,10 @@ "type": "minecraft:crafting_shapeless", "category": "equipment", "ingredients": [ - { - "item": "anvilcraft:block_devourer" - }, - { - "item": "anvilcraft:royal_anvil_hammer" - } + "anvilcraft:block_devourer", + "anvilcraft:royal_anvil_hammer" ], "result": { - "count": 1, "id": "anvilcraft:royal_dragon_rod" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/royal_steel_block.json index 33a144fa9f..63154d7e0c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/royal_steel_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:royal_steel_ingot" - } + "A": "anvilcraft:royal_steel_ingot" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:royal_steel_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_block.json index d4a0ac5658..857150ac28 100644 --- a/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:royal_steel_ingot", "ingredients": [ - { - "item": "anvilcraft:royal_steel_block" - } + "anvilcraft:royal_steel_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_nugget.json b/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_nugget.json index 77a71a2cb6..60e46afb2b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/royal_steel_ingot_from_royal_steel_nugget.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:royal_steel_ingot", "key": { - "A": { - "item": "anvilcraft:royal_steel_nugget" - } + "A": "anvilcraft:royal_steel_nugget" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:royal_steel_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/royal_steel_nugget.json b/src/generated/resources/data/anvilcraft/recipe/royal_steel_nugget.json index 93157ae1b1..aa779b9062 100644 --- a/src/generated/resources/data/anvilcraft/recipe/royal_steel_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/royal_steel_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:royal_steel_ingot" - } + "anvilcraft:royal_steel_ingot" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/ruby.json b/src/generated/resources/data/anvilcraft/recipe/ruby.json index 08082cc70c..9bdb9dab62 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ruby.json +++ b/src/generated/resources/data/anvilcraft/recipe/ruby.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:ruby_block" - } + "anvilcraft:ruby_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/ruby_block.json b/src/generated/resources/data/anvilcraft/recipe/ruby_block.json index 973eb15c9e..91728064a3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ruby_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/ruby_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:ruby" - } + "A": "anvilcraft:ruby" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:ruby_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/ruby_laser.json b/src/generated/resources/data/anvilcraft/recipe/ruby_laser.json index 3f466ca6d9..caa7367bc8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ruby_laser.json +++ b/src/generated/resources/data/anvilcraft/recipe/ruby_laser.json @@ -2,21 +2,11 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:royal_steel_ingot" - }, - "B": { - "item": "anvilcraft:induction_light" - }, - "C": { - "tag": "c:plates/silver" - }, - "D": { - "item": "anvilcraft:ruby_block" - }, - "E": { - "item": "minecraft:tinted_glass" - } + "A": "anvilcraft:royal_steel_ingot", + "B": "anvilcraft:induction_light", + "C": "#c:plates/silver", + "D": "anvilcraft:ruby_block", + "E": "minecraft:tinted_glass" }, "pattern": [ "AEA", diff --git a/src/generated/resources/data/anvilcraft/recipe/ruby_prism.json b/src/generated/resources/data/anvilcraft/recipe/ruby_prism.json index fda98544a5..a52b748667 100644 --- a/src/generated/resources/data/anvilcraft/recipe/ruby_prism.json +++ b/src/generated/resources/data/anvilcraft/recipe/ruby_prism.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:royal_steel_ingot" - }, - "B": { - "item": "anvilcraft:ruby_block" - }, - "C": { - "item": "anvilcraft:ruby" - } + "A": "anvilcraft:royal_steel_ingot", + "B": "anvilcraft:ruby_block", + "C": "anvilcraft:ruby" }, "pattern": [ "ACA", @@ -18,7 +12,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:ruby_prism" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/sapphire.json b/src/generated/resources/data/anvilcraft/recipe/sapphire.json index 4be7bdbc04..b2cae7a18e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/sapphire.json +++ b/src/generated/resources/data/anvilcraft/recipe/sapphire.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:sapphire_block" - } + "anvilcraft:sapphire_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/sapphire_block.json b/src/generated/resources/data/anvilcraft/recipe/sapphire_block.json index 2cf6616204..bfdaba296e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/sapphire_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/sapphire_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:sapphire" - } + "A": "anvilcraft:sapphire" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:sapphire_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_block.json index 467a201e4f..815db7bad6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:polished_flint_block" - } + "A": "anvilcraft:polished_flint_block" }, "pattern": [ "AA", diff --git a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_pillar.json b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_pillar.json index 63fd7b0c5d..6a468185cc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_pillar.json +++ b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_pillar.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:cut_flint_block" - } + "A": "anvilcraft:cut_flint_block" }, "pattern": [ "A", diff --git a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_slab.json b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_slab.json index 81129d9db7..0e7b60001d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_slab.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:cut_flint_block" - } + "A": "anvilcraft:cut_flint_block" }, "pattern": [ "AAA" diff --git a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_stairs.json b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_stairs.json index 1d29190391..4ebc52e995 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_stairs.json +++ b/src/generated/resources/data/anvilcraft/recipe/shaped/cut_flint_stairs.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:cut_flint_block" - } + "A": "anvilcraft:cut_flint_block" }, "pattern": [ "A ", diff --git a/src/generated/resources/data/anvilcraft/recipe/shaped/polished_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/shaped/polished_flint_block.json index 852ddd36ac..d46f2eaa1a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shaped/polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/shaped/polished_flint_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:flint_block" - } + "A": "anvilcraft:flint_block" }, "pattern": [ "AA", diff --git a/src/generated/resources/data/anvilcraft/recipe/shaped_crushing_table_recipe.json b/src/generated/resources/data/anvilcraft/recipe/shaped_crushing_table_recipe.json index c32c900f06..fa9b255ad3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shaped_crushing_table_recipe.json +++ b/src/generated/resources/data/anvilcraft/recipe/shaped_crushing_table_recipe.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:grindstone" - }, - "B": { - "tag": "c:ingots/iron" - } + "A": "minecraft:grindstone", + "B": "#c:ingots/iron" }, "pattern": [ "BAB", @@ -15,7 +11,6 @@ "B B" ], "result": { - "count": 1, "id": "anvilcraft:crushing_table" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/shapeless/deform_to_permut.json b/src/generated/resources/data/anvilcraft/recipe/shapeless/deform_to_permut.json index 846dd00482..58ad009cb2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shapeless/deform_to_permut.json +++ b/src/generated/resources/data/anvilcraft/recipe/shapeless/deform_to_permut.json @@ -2,12 +2,9 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:deformation_smithing_template" - } + "anvilcraft:deformation_smithing_template" ], "result": { - "count": 1, "id": "anvilcraft:permutation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/shapeless/permut_to_deform.json b/src/generated/resources/data/anvilcraft/recipe/shapeless/permut_to_deform.json index c186d28bf8..573f4f6f45 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shapeless/permut_to_deform.json +++ b/src/generated/resources/data/anvilcraft/recipe/shapeless/permut_to_deform.json @@ -2,12 +2,9 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:permutation_smithing_template" - } + "anvilcraft:permutation_smithing_template" ], "result": { - "count": 1, "id": "anvilcraft:deformation_smithing_template" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/shapeless_crushing_table_recipe.json b/src/generated/resources/data/anvilcraft/recipe/shapeless_crushing_table_recipe.json index 61071fdf50..33e39df23e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/shapeless_crushing_table_recipe.json +++ b/src/generated/resources/data/anvilcraft/recipe/shapeless_crushing_table_recipe.json @@ -2,15 +2,10 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:stamping_platform" - }, - { - "item": "minecraft:grindstone" - } + "anvilcraft:stamping_platform", + "minecraft:grindstone" ], "result": { - "count": 1, "id": "anvilcraft:crushing_table" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/silver_block.json b/src/generated/resources/data/anvilcraft/recipe/silver_block.json index e78cafe75f..c0b049ea14 100644 --- a/src/generated/resources/data/anvilcraft/recipe/silver_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/silver_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/silver" - } + "A": "#c:ingots/silver" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:silver_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/silver_ingot.json b/src/generated/resources/data/anvilcraft/recipe/silver_ingot.json index cd9cd5b728..d1fe50e459 100644 --- a/src/generated/resources/data/anvilcraft/recipe/silver_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/silver_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:silver_ingot", "key": { - "A": { - "tag": "c:nuggets/silver" - } + "A": "#c:nuggets/silver" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:silver_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/silver_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/silver_ingot_from_block.json index c37dbf20e0..030e6c8124 100644 --- a/src/generated/resources/data/anvilcraft/recipe/silver_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/silver_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:silver_ingot", "ingredients": [ - { - "item": "anvilcraft:silver_block" - } + "anvilcraft:silver_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/silver_nugget.json b/src/generated/resources/data/anvilcraft/recipe/silver_nugget.json index 52ec09233e..3b965e5e82 100644 --- a/src/generated/resources/data/anvilcraft/recipe/silver_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/silver_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/silver" - } + "#c:ingots/silver" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/silver_pressure_plate_from_ingots_silver.json b/src/generated/resources/data/anvilcraft/recipe/silver_pressure_plate_from_ingots_silver.json index 9720a57fc4..481740d938 100644 --- a/src/generated/resources/data/anvilcraft/recipe/silver_pressure_plate_from_ingots_silver.json +++ b/src/generated/resources/data/anvilcraft/recipe/silver_pressure_plate_from_ingots_silver.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/silver" - } + "A": "#c:ingots/silver" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:silver_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/sliding_rail.json b/src/generated/resources/data/anvilcraft/recipe/sliding_rail.json index 7218f198ba..2ef83b2240 100644 --- a/src/generated/resources/data/anvilcraft/recipe/sliding_rail.json +++ b/src/generated/resources/data/anvilcraft/recipe/sliding_rail.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "item": "minecraft:blue_ice" - }, - "B": { - "item": "minecraft:iron_ingot" - } + "A": "minecraft:blue_ice", + "B": "minecraft:iron_ingot" }, "pattern": [ "A A", diff --git a/src/generated/resources/data/anvilcraft/recipe/sliding_rail_stop.json b/src/generated/resources/data/anvilcraft/recipe/sliding_rail_stop.json index 86f4d78006..c7b40f7aae 100644 --- a/src/generated/resources/data/anvilcraft/recipe/sliding_rail_stop.json +++ b/src/generated/resources/data/anvilcraft/recipe/sliding_rail_stop.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:soul_sand" - }, - "B": { - "item": "minecraft:iron_ingot" - } + "A": "minecraft:soul_sand", + "B": "minecraft:iron_ingot" }, "pattern": [ "A A", diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot.json b/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot.json index ef2eeffb4a..b83da66f8e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:lead_ingot", - "ingredient": { - "item": "anvilcraft:raw_lead" - }, + "ingredient": "anvilcraft:raw_lead", "result": { - "count": 1, "id": "anvilcraft:lead_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot_from_ore.json index 1852fa6642..c9b49a9514 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/lead_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:lead_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_lead_ore" - }, + "ingredient": "anvilcraft:deepslate_lead_ore", "result": { - "count": 1, "id": "anvilcraft:lead_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot.json b/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot.json index 91b36d9243..2151a400d9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:silver_ingot", - "ingredient": { - "item": "anvilcraft:raw_silver" - }, + "ingredient": "anvilcraft:raw_silver", "result": { - "count": 1, "id": "anvilcraft:silver_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot_from_ore.json index 8d6667c742..5e149f1caf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/silver_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:silver_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_silver_ore" - }, + "ingredient": "anvilcraft:deepslate_silver_ore", "result": { - "count": 1, "id": "anvilcraft:silver_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot.json b/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot.json index 58cac6337a..361df35198 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:tin_ingot", - "ingredient": { - "item": "anvilcraft:raw_tin" - }, + "ingredient": "anvilcraft:raw_tin", "result": { - "count": 1, "id": "anvilcraft:tin_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot_from_ore.json index 74f711bfbb..38b0bbb520 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/tin_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:tin_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_tin_ore" - }, + "ingredient": "anvilcraft:deepslate_tin_ore", "result": { - "count": 1, "id": "anvilcraft:tin_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot.json index a0d1678eab..8102b6d658 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:titanium_ingot", - "ingredient": { - "item": "anvilcraft:raw_titanium" - }, + "ingredient": "anvilcraft:raw_titanium", "result": { - "count": 1, "id": "anvilcraft:titanium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot_from_ore.json index 55d1875001..64764022d2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/titanium_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:titanium_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_titanium_ore" - }, + "ingredient": "anvilcraft:deepslate_titanium_ore", "result": { - "count": 1, "id": "anvilcraft:titanium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot.json b/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot.json index 9f00766fac..d6722a5237 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:tungsten_ingot", - "ingredient": { - "item": "anvilcraft:raw_tungsten" - }, + "ingredient": "anvilcraft:raw_tungsten", "result": { - "count": 1, "id": "anvilcraft:tungsten_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot_from_ore.json index 2e43a572ea..b1108f0f63 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/tungsten_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:tungsten_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_tungsten_ore" - }, + "ingredient": "anvilcraft:deepslate_tungsten_ore", "result": { - "count": 1, "id": "anvilcraft:tungsten_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot.json index 172b48ceaf..27f79cde16 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:uranium_ingot", - "ingredient": { - "item": "anvilcraft:raw_uranium" - }, + "ingredient": "anvilcraft:raw_uranium", "result": { - "count": 1, "id": "anvilcraft:uranium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot_from_ore.json index b474d1ce9c..33431c372f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/uranium_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:uranium_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_uranium_ore" - }, + "ingredient": "anvilcraft:deepslate_uranium_ore", "result": { - "count": 1, "id": "anvilcraft:uranium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot.json b/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot.json index 520eb87cdd..421e700df5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:zinc_ingot", - "ingredient": { - "item": "anvilcraft:raw_zinc" - }, + "ingredient": "anvilcraft:raw_zinc", "result": { - "count": 1, "id": "anvilcraft:zinc_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot_from_ore.json b/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot_from_ore.json index fc11cad1f1..70623734d3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot_from_ore.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting/zinc_ingot_from_ore.json @@ -4,11 +4,8 @@ "cookingtime": 200, "experience": 1.0, "group": "anvilcraft:zinc_ingot", - "ingredient": { - "item": "anvilcraft:deepslate_zinc_ore" - }, + "ingredient": "anvilcraft:deepslate_zinc_ore", "result": { - "count": 1, "id": "anvilcraft:zinc_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smelting_cooking_bread.json b/src/generated/resources/data/anvilcraft/recipe/smelting_cooking_bread.json index d7127e70c6..2624f36e8a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smelting_cooking_bread.json +++ b/src/generated/resources/data/anvilcraft/recipe/smelting_cooking_bread.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 200, "experience": 0.35, - "ingredient": { - "tag": "c:foods/dough" - }, + "ingredient": "#c:foods/dough", "result": { - "count": 1, "id": "minecraft:bread" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil.json index 00264e362a..ce17fd5abc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_block" - }, - "base": { - "item": "anvilcraft:royal_anvil" - }, + "addition": "anvilcraft:ember_metal_block", + "base": "anvilcraft:royal_anvil", "result": { - "count": 1, "id": "anvilcraft:ember_anvil" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil_hammer.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil_hammer.json index 345178e2d1..4a2ea67bcf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil_hammer.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_anvil_hammer.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_block" - }, - "base": { - "item": "anvilcraft:royal_anvil_hammer" - }, + "addition": "anvilcraft:ember_metal_block", + "base": "anvilcraft:royal_anvil_hammer", "result": { - "count": 1, "id": "anvilcraft:ember_anvil_hammer" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_dragon_rod.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_dragon_rod.json index c082a744a4..e1f89453b9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_dragon_rod.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_block" - }, - "base": { - "item": "anvilcraft:royal_dragon_rod" - }, + "addition": "anvilcraft:ember_metal_block", + "base": "anvilcraft:royal_dragon_rod", "result": { - "count": 1, "id": "anvilcraft:ember_dragon_rod" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_grindstone.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_grindstone.json index 4db968aacb..86635d30c9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_grindstone.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_grindstone.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_block" - }, - "base": { - "item": "anvilcraft:royal_grindstone" - }, + "addition": "anvilcraft:ember_metal_block", + "base": "anvilcraft:royal_grindstone", "result": { - "count": 1, "id": "anvilcraft:ember_grindstone" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_axe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_axe.json index edc0defeb9..0aff6f0e95 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_axe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_axe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_ingot" - }, - "base": { - "tag": "anvilcraft:ember_metal_axe_base" - }, + "addition": "anvilcraft:ember_metal_ingot", + "base": "#anvilcraft:ember_metal_axe_base", "result": { - "count": 1, "id": "anvilcraft:ember_metal_axe" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_hoe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_hoe.json index 682fbc00cb..32ab7ceb82 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_hoe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_hoe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_ingot" - }, - "base": { - "tag": "anvilcraft:ember_metal_hoe_base" - }, + "addition": "anvilcraft:ember_metal_ingot", + "base": "#anvilcraft:ember_metal_hoe_base", "result": { - "count": 1, "id": "anvilcraft:ember_metal_hoe" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_pickaxe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_pickaxe.json index 24350cfbad..4cbd31121b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_pickaxe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_ingot" - }, - "base": { - "tag": "anvilcraft:ember_metal_pickaxe_base" - }, + "addition": "anvilcraft:ember_metal_ingot", + "base": "#anvilcraft:ember_metal_pickaxe_base", "result": { - "count": 1, "id": "anvilcraft:ember_metal_pickaxe" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_shovel.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_shovel.json index 1e1944360b..e5db5ad7a3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_shovel.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_shovel.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_ingot" - }, - "base": { - "tag": "anvilcraft:ember_metal_shovel_base" - }, + "addition": "anvilcraft:ember_metal_ingot", + "base": "#anvilcraft:ember_metal_shovel_base", "result": { - "count": 1, "id": "anvilcraft:ember_metal_shovel" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_sword.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_sword.json index a581f8aa38..a37677ab54 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_sword.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_metal_sword.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_ingot" - }, - "base": { - "tag": "anvilcraft:ember_metal_sword_base" - }, + "addition": "anvilcraft:ember_metal_ingot", + "base": "#anvilcraft:ember_metal_sword_base", "result": { - "count": 1, "id": "anvilcraft:ember_metal_sword" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_smithing_table.json b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_smithing_table.json index 45b9e6fa6d..6b0fc3e719 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/ember_smithing_table.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/ember_smithing_table.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:ember_metal_block" - }, - "base": { - "item": "anvilcraft:royal_smithing_table" - }, + "addition": "anvilcraft:ember_metal_block", + "base": "anvilcraft:royal_smithing_table", "result": { - "count": 1, "id": "anvilcraft:ember_smithing_table" }, - "template": { - "item": "anvilcraft:ember_metal_upgrade_smithing_template" - } + "template": "anvilcraft:ember_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_anvil.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_anvil.json index f1fda7c4d0..f786a9452e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_anvil.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_block" - }, - "base": { - "item": "anvilcraft:royal_anvil" - }, + "addition": "anvilcraft:frost_metal_block", + "base": "anvilcraft:royal_anvil", "result": { - "count": 1, "id": "anvilcraft:frost_anvil" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_grindstone.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_grindstone.json index ff235480cf..20d345a145 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_grindstone.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_grindstone.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_block" - }, - "base": { - "item": "anvilcraft:royal_grindstone" - }, + "addition": "anvilcraft:frost_metal_block", + "base": "anvilcraft:royal_grindstone", "result": { - "count": 1, "id": "anvilcraft:frost_grindstone" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_axe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_axe.json index 23d833bcde..9f09f0d3ba 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_axe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_axe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_ingot" - }, - "base": { - "tag": "anvilcraft:frost_metal_axe_base" - }, + "addition": "anvilcraft:frost_metal_ingot", + "base": "#anvilcraft:frost_metal_axe_base", "result": { - "count": 1, "id": "anvilcraft:frost_metal_axe" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_hoe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_hoe.json index 90941330d3..95bbf1e00f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_hoe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_hoe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_ingot" - }, - "base": { - "tag": "anvilcraft:frost_metal_hoe_base" - }, + "addition": "anvilcraft:frost_metal_ingot", + "base": "#anvilcraft:frost_metal_hoe_base", "result": { - "count": 1, "id": "anvilcraft:frost_metal_hoe" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_pickaxe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_pickaxe.json index fe4df4b41d..5f6883685d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_pickaxe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_ingot" - }, - "base": { - "tag": "anvilcraft:frost_metal_pickaxe_base" - }, + "addition": "anvilcraft:frost_metal_ingot", + "base": "#anvilcraft:frost_metal_pickaxe_base", "result": { - "count": 1, "id": "anvilcraft:frost_metal_pickaxe" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_shovel.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_shovel.json index dbfa1cc5fe..038bb644a9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_shovel.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_shovel.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_ingot" - }, - "base": { - "tag": "anvilcraft:frost_metal_shovel_base" - }, + "addition": "anvilcraft:frost_metal_ingot", + "base": "#anvilcraft:frost_metal_shovel_base", "result": { - "count": 1, "id": "anvilcraft:frost_metal_shovel" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_sword.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_sword.json index 1d22a8477e..64d7cb6e7b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_sword.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_metal_sword.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_ingot" - }, - "base": { - "tag": "anvilcraft:frost_metal_sword_base" - }, + "addition": "anvilcraft:frost_metal_ingot", + "base": "#anvilcraft:frost_metal_sword_base", "result": { - "count": 1, "id": "anvilcraft:frost_metal_sword" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_smithing_table.json b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_smithing_table.json index d60cef5f57..f77bc5ef8f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/frost_smithing_table.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/frost_smithing_table.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:frost_metal_block" - }, - "base": { - "item": "anvilcraft:royal_smithing_table" - }, + "addition": "anvilcraft:frost_metal_block", + "base": "anvilcraft:royal_smithing_table", "result": { - "count": 1, "id": "anvilcraft:frost_smithing_table" }, - "template": { - "item": "anvilcraft:frost_metal_upgrade_smithing_template" - } + "template": "anvilcraft:frost_metal_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil.json index beee5a842b..b93662b33f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_block" - }, - "base": { - "item": "minecraft:anvil" - }, + "addition": "anvilcraft:royal_steel_block", + "base": "minecraft:anvil", "result": { - "count": 1, "id": "anvilcraft:royal_anvil" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil_hammer.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil_hammer.json index a459170e9a..85e0ccf12f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil_hammer.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_anvil_hammer.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_block" - }, - "base": { - "item": "anvilcraft:anvil_hammer" - }, + "addition": "anvilcraft:royal_steel_block", + "base": "anvilcraft:anvil_hammer", "result": { - "count": 1, "id": "anvilcraft:royal_anvil_hammer" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_dragon_rod.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_dragon_rod.json index 6d9a684b25..0871ac213b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_dragon_rod.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_block" - }, - "base": { - "item": "anvilcraft:dragon_rod" - }, + "addition": "anvilcraft:royal_steel_block", + "base": "anvilcraft:dragon_rod", "result": { - "count": 1, "id": "anvilcraft:royal_dragon_rod" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_grindstone.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_grindstone.json index c205c6c506..f11fc26348 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_grindstone.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_grindstone.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_block" - }, - "base": { - "item": "minecraft:grindstone" - }, + "addition": "anvilcraft:royal_steel_block", + "base": "minecraft:grindstone", "result": { - "count": 1, "id": "anvilcraft:royal_grindstone" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_smithing_table.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_smithing_table.json index c23b75baba..6ea1b5d4fe 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_smithing_table.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_smithing_table.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_block" - }, - "base": { - "item": "minecraft:smithing_table" - }, + "addition": "anvilcraft:royal_steel_block", + "base": "minecraft:smithing_table", "result": { - "count": 1, "id": "anvilcraft:royal_smithing_table" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_axe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_axe.json index d6437f060c..13f17f009a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_axe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_axe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_ingot" - }, - "base": { - "tag": "anvilcraft:royal_steel_axe_base" - }, + "addition": "anvilcraft:royal_steel_ingot", + "base": "#anvilcraft:royal_steel_axe_base", "result": { - "count": 1, "id": "anvilcraft:royal_steel_axe" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_hoe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_hoe.json index d97e40028a..dfe03c3b74 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_hoe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_hoe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_ingot" - }, - "base": { - "tag": "anvilcraft:royal_steel_hoe_base" - }, + "addition": "anvilcraft:royal_steel_ingot", + "base": "#anvilcraft:royal_steel_hoe_base", "result": { - "count": 1, "id": "anvilcraft:royal_steel_hoe" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_pickaxe.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_pickaxe.json index ad8a8797a4..8ed3d49589 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_pickaxe.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_pickaxe.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_ingot" - }, - "base": { - "tag": "anvilcraft:royal_steel_pickaxe_base" - }, + "addition": "anvilcraft:royal_steel_ingot", + "base": "#anvilcraft:royal_steel_pickaxe_base", "result": { - "count": 1, "id": "anvilcraft:royal_steel_pickaxe" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_shovel.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_shovel.json index 26da9b5653..06a84a2788 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_shovel.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_shovel.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_ingot" - }, - "base": { - "tag": "anvilcraft:royal_steel_shovel_base" - }, + "addition": "anvilcraft:royal_steel_ingot", + "base": "#anvilcraft:royal_steel_shovel_base", "result": { - "count": 1, "id": "anvilcraft:royal_steel_shovel" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_sword.json b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_sword.json index 924a1d08ea..3b89ad2d89 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_sword.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/royal_steel_sword.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:royal_steel_ingot" - }, - "base": { - "tag": "anvilcraft:royal_steel_sword_base" - }, + "addition": "anvilcraft:royal_steel_ingot", + "base": "#anvilcraft:royal_steel_sword_base", "result": { - "count": 1, "id": "anvilcraft:royal_steel_sword" }, - "template": { - "item": "anvilcraft:royal_steel_upgrade_smithing_template" - } + "template": "anvilcraft:royal_steel_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil.json b/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil.json index 2a6942c33a..3bc3fe1eb4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:transcendium_block" - }, - "base": { - "item": "anvilcraft:ember_anvil" - }, + "addition": "anvilcraft:transcendium_block", + "base": "anvilcraft:ember_anvil", "result": { - "count": 1, "id": "anvilcraft:transcendence_anvil" }, - "template": { - "item": "anvilcraft:transcendium_upgrade_smithing_template" - } + "template": "anvilcraft:transcendium_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil_hammer.json b/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil_hammer.json index 5dfaa37d54..de9340363c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil_hammer.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_anvil_hammer.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:transcendium_block" - }, - "base": { - "item": "anvilcraft:ember_anvil_hammer" - }, + "addition": "anvilcraft:transcendium_block", + "base": "anvilcraft:ember_anvil_hammer", "result": { - "count": 1, "id": "anvilcraft:transcendence_anvil_hammer" }, - "template": { - "item": "anvilcraft:transcendium_upgrade_smithing_template" - } + "template": "anvilcraft:transcendium_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_dragon_rod.json b/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_dragon_rod.json index 00b96431e0..d65455c7e0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/smithing/transcendence_dragon_rod.json @@ -1,16 +1,9 @@ { "type": "minecraft:smithing_transform", - "addition": { - "item": "anvilcraft:transcendium_block" - }, - "base": { - "item": "anvilcraft:ember_dragon_rod" - }, + "addition": "anvilcraft:transcendium_block", + "base": "anvilcraft:ember_dragon_rod", "result": { - "count": 1, "id": "anvilcraft:transcendence_dragon_rod" }, - "template": { - "item": "anvilcraft:transcendium_upgrade_smithing_template" - } + "template": "anvilcraft:transcendium_upgrade_smithing_template" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/smoking_bread.json b/src/generated/resources/data/anvilcraft/recipe/smoking_bread.json index 6e2f226ca3..b1958efc80 100644 --- a/src/generated/resources/data/anvilcraft/recipe/smoking_bread.json +++ b/src/generated/resources/data/anvilcraft/recipe/smoking_bread.json @@ -3,11 +3,8 @@ "category": "food", "cookingtime": 100, "experience": 0.35, - "ingredient": { - "tag": "c:foods/dough" - }, + "ingredient": "#c:foods/dough", "result": { - "count": 1, "id": "minecraft:bread" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/spectral_slingshot.json b/src/generated/resources/data/anvilcraft/recipe/spectral_slingshot.json index 0912a6e51c..00e75b4438 100644 --- a/src/generated/resources/data/anvilcraft/recipe/spectral_slingshot.json +++ b/src/generated/resources/data/anvilcraft/recipe/spectral_slingshot.json @@ -3,15 +3,9 @@ "category": "misc", "group": "anvilcraft:spectral_slingshot", "key": { - "A": { - "item": "minecraft:phantom_membrane" - }, - "B": { - "item": "anvilcraft:spectral_anvil" - }, - "C": { - "item": "minecraft:crossbow" - } + "A": "minecraft:phantom_membrane", + "B": "anvilcraft:spectral_anvil", + "C": "minecraft:crossbow" }, "pattern": [ "AAA", @@ -19,7 +13,6 @@ " C " ], "result": { - "count": 1, "id": "anvilcraft:spectral_slingshot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk.json b/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk.json index b5820437c2..307769b5f8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk.json +++ b/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk.json @@ -7,10 +7,11 @@ "inverted": true }, "chance": 0.1, - "consume": -250, + "fluid": "minecraft:null", "ingredient": { "blocks": "minecraft:sculk" }, + "produce": 250, "result": { "block": "minecraft:air" }, diff --git a/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk_use_frost_anvil.json b/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk_use_frost_anvil.json index 282a28713e..2b4a68f662 100644 --- a/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk_use_frost_anvil.json +++ b/src/generated/resources/data/anvilcraft/recipe/squeezing/exp_fluid_from_sculk_use_frost_anvil.json @@ -6,10 +6,11 @@ } }, "chance": 0.4, - "consume": -250, + "fluid": "minecraft:null", "ingredient": { "blocks": "minecraft:sculk" }, + "produce": 250, "result": { "block": "minecraft:air" }, diff --git a/src/generated/resources/data/anvilcraft/recipe/squeezing/lava_cauldron_from_magma_block.json b/src/generated/resources/data/anvilcraft/recipe/squeezing/lava_cauldron_from_magma_block.json index f44733a1cd..990ca641cf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/squeezing/lava_cauldron_from_magma_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/squeezing/lava_cauldron_from_magma_block.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:squeezing", - "consume": -250, + "fluid": "minecraft:null", "ingredient": { "blocks": "minecraft:magma_block" }, + "produce": 250, "result": { "block": "minecraft:netherrack" }, - "transform": "anvilcraft:lava" + "transform": "minecraft:lava" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/squeezing/powder_snow_cauldron_from_snow_block.json b/src/generated/resources/data/anvilcraft/recipe/squeezing/powder_snow_cauldron_from_snow_block.json index 3edc0c7cf0..a3bb183e28 100644 --- a/src/generated/resources/data/anvilcraft/recipe/squeezing/powder_snow_cauldron_from_snow_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/squeezing/powder_snow_cauldron_from_snow_block.json @@ -1,9 +1,10 @@ { "type": "anvilcraft:squeezing", - "consume": -333, + "fluid": "minecraft:null", "ingredient": { "blocks": "minecraft:snow_block" }, + "produce": 250, "result": { "block": "minecraft:ice" }, diff --git a/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_moss_block.json b/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_moss_block.json index 65b2939952..f647b0b770 100644 --- a/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_moss_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_moss_block.json @@ -1,9 +1,10 @@ { "type": "anvilcraft:squeezing", - "consume": -333, + "fluid": "minecraft:null", "ingredient": { "blocks": "minecraft:moss_block" }, + "produce": 250, "result": { "block": "minecraft:moss_carpet" }, diff --git a/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_wet_sponge.json b/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_wet_sponge.json index f8c5e92e26..d040923c63 100644 --- a/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_wet_sponge.json +++ b/src/generated/resources/data/anvilcraft/recipe/squeezing/water_cauldron_from_wet_sponge.json @@ -1,9 +1,10 @@ { "type": "anvilcraft:squeezing", - "consume": -333, + "fluid": "minecraft:null", "ingredient": { "blocks": "minecraft:wet_sponge" }, + "produce": 250, "result": { "block": "minecraft:sponge" }, diff --git a/src/generated/resources/data/anvilcraft/recipe/stable_neutronium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/stable_neutronium_ingot.json index 8a0f8f14f7..127332ca84 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stable_neutronium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/stable_neutronium_ingot.json @@ -2,15 +2,10 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:neutronium_ingot" - }, - { - "item": "anvilcraft:levitation_powder" - } + "anvilcraft:neutronium_ingot", + "anvilcraft:levitation_powder" ], "result": { - "count": 1, "id": "anvilcraft:stable_neutronium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stamping_diff/eight_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/stamping_diff/eight_to_one_smithing_template.json new file mode 100644 index 0000000000..4f1dc04a87 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stamping_diff/eight_to_one_smithing_template.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:stamping_diff", + "ingredients": [ + { + "count": 8, + "items": "#anvilcraft:templates" + } + ], + "results": [ + { + "id": "anvilcraft:eight_to_one_smithing_template" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stamping_diff/four_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/stamping_diff/four_to_one_smithing_template.json new file mode 100644 index 0000000000..22cebe43f7 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stamping_diff/four_to_one_smithing_template.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:stamping_diff", + "ingredients": [ + { + "count": 4, + "items": "#anvilcraft:templates" + } + ], + "results": [ + { + "id": "anvilcraft:four_to_one_smithing_template" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stamping_diff/two_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/stamping_diff/two_to_one_smithing_template.json new file mode 100644 index 0000000000..7bec94dd88 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stamping_diff/two_to_one_smithing_template.json @@ -0,0 +1,14 @@ +{ + "type": "anvilcraft:stamping_diff", + "ingredients": [ + { + "count": 2, + "items": "#anvilcraft:templates" + } + ], + "results": [ + { + "id": "anvilcraft:two_to_one_smithing_template" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stamping_platform.json b/src/generated/resources/data/anvilcraft/recipe/stamping_platform.json index 73357a489f..ea78de9adf 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stamping_platform.json +++ b/src/generated/resources/data/anvilcraft/recipe/stamping_platform.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "tag": "c:plates/iron" - }, - "B": { - "tag": "c:ingots/iron" - } + "A": "#c:plates/iron", + "B": "#c:ingots/iron" }, "pattern": [ "BAB", @@ -15,7 +11,6 @@ "B B" ], "result": { - "count": 1, "id": "anvilcraft:stamping_platform" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/eight_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/eight_to_one_smithing_template.json deleted file mode 100644 index e6966060e8..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/eight_to_one_smithing_template.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "anvilcraft:stamping_unique_items", - "ingredients": [ - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - } - ], - "results": [ - { - "id": "anvilcraft:eight_to_one_smithing_template" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/four_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/four_to_one_smithing_template.json deleted file mode 100644 index 9184107e20..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/four_to_one_smithing_template.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "anvilcraft:stamping_unique_items", - "ingredients": [ - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - } - ], - "results": [ - { - "id": "anvilcraft:four_to_one_smithing_template" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/two_to_one_smithing_template.json b/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/two_to_one_smithing_template.json deleted file mode 100644 index aa4a980121..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stamping_unique_items/two_to_one_smithing_template.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "anvilcraft:stamping_unique_items", - "ingredients": [ - { - "tag": "anvilcraft:templates" - }, - { - "tag": "anvilcraft:templates" - } - ], - "results": [ - { - "id": "anvilcraft:two_to_one_smithing_template" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_slab.json index a7bf695ed6..af9f0411d6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_slab.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:black_chocolate_block" - }, + "ingredient": "anvilcraft:black_chocolate_block", "result": { "count": 2, "id": "anvilcraft:black_chocolate_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_stairs.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_stairs.json index b7ab949013..1a5c369b48 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_stairs.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_chocolate_stairs.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:black_chocolate_block" - }, + "ingredient": "anvilcraft:black_chocolate_block", "result": { - "count": 1, "id": "anvilcraft:black_chocolate_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_slab.json new file mode 100644 index 0000000000..a335e9c385 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:black_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:black_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_stair.json new file mode 100644 index 0000000000..a21c0fac4c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:black_reinforced_concrete", + "result": { + "id": "anvilcraft:black_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_wall.json new file mode 100644 index 0000000000..99570b424b --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/black_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:black_reinforced_concrete", + "result": { + "id": "anvilcraft:black_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..d0fc64190d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:blue_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:blue_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..862a85ea86 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:blue_reinforced_concrete", + "result": { + "id": "anvilcraft:blue_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..1dd34671ca --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/blue_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:blue_reinforced_concrete", + "result": { + "id": "anvilcraft:blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_slab.json new file mode 100644 index 0000000000..d269c28314 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:brown_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:brown_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_stair.json new file mode 100644 index 0000000000..38a0f6c69e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:brown_reinforced_concrete", + "result": { + "id": "anvilcraft:brown_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_wall.json new file mode 100644 index 0000000000..d84e25ac9e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/brown_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:brown_reinforced_concrete", + "result": { + "id": "anvilcraft:brown_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_slab.json index 8a6148a465..9c91da39ed 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_slab.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:chocolate_block" - }, + "ingredient": "anvilcraft:chocolate_block", "result": { "count": 2, "id": "anvilcraft:chocolate_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_stairs.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_stairs.json index 45583b585f..5fae11df7e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_stairs.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/chocolate_stairs.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:chocolate_block" - }, + "ingredient": "anvilcraft:chocolate_block", "result": { - "count": 1, "id": "anvilcraft:chocolate_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_block.json index 1f3851ebc8..f697d0ad3a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:ember_metal_block" - }, + "ingredient": "anvilcraft:ember_metal_block", "result": { "count": 4, "id": "anvilcraft:cut_ember_metal_block" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json index 4dd367d3dd..7f495177de 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_cut_ember_metal_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_ember_metal_block" - }, + "ingredient": "anvilcraft:cut_ember_metal_block", "result": { - "count": 1, "id": "anvilcraft:cut_ember_metal_pillar" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json index e1f5312508..a97217b169 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_pillar_from_ember_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:ember_metal_block" - }, + "ingredient": "anvilcraft:ember_metal_block", "result": { "count": 4, "id": "anvilcraft:cut_ember_metal_pillar" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json index 2c92c42529..f97b4a0093 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_cut_ember_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_ember_metal_block" - }, + "ingredient": "anvilcraft:cut_ember_metal_block", "result": { "count": 2, "id": "anvilcraft:cut_ember_metal_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json index 6ead6b344e..0342799d90 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_slab_from_ember_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:ember_metal_block" - }, + "ingredient": "anvilcraft:ember_metal_block", "result": { "count": 8, "id": "anvilcraft:cut_ember_metal_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json index d77ad50c1e..bb0485000c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_cut_ember_metal_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_ember_metal_block" - }, + "ingredient": "anvilcraft:cut_ember_metal_block", "result": { - "count": 1, "id": "anvilcraft:cut_ember_metal_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json index d8973d660d..aee5f70c4f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_ember_metal_stairs_from_ember_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:ember_metal_block" - }, + "ingredient": "anvilcraft:ember_metal_block", "result": { "count": 4, "id": "anvilcraft:cut_ember_metal_stairs" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_flint_block.json index f5fc24d9b6..082b1905c6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:flint_block" - }, + "ingredient": "anvilcraft:flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_polished_flint_block.json index b6cffd5538..3a73626018 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_block_from_polished_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_flint_block" - }, + "ingredient": "anvilcraft:polished_flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_cut_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_cut_flint_block.json index a6a86cd584..747510fef0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_cut_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_flint_block" - }, + "ingredient": "anvilcraft:cut_flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_pillar" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_flint_block.json index 4432e501e4..e60d578118 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:flint_block" - }, + "ingredient": "anvilcraft:flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_pillar" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_polished_flint_block.json index 697f5ec757..f68e65a459 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_pillar_from_polished_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_flint_block" - }, + "ingredient": "anvilcraft:polished_flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_pillar" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_cut_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_cut_flint_block.json index 70073855a8..2835b2c41f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_cut_flint_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_flint_block" - }, + "ingredient": "anvilcraft:cut_flint_block", "result": { "count": 2, "id": "anvilcraft:cut_flint_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_flint_block.json index 48dfbbcce5..458e65c5b3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_flint_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:flint_block" - }, + "ingredient": "anvilcraft:flint_block", "result": { "count": 2, "id": "anvilcraft:cut_flint_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_polished_flint_block.json index a448766f27..fedcc6390a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_slab_from_polished_flint_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_flint_block" - }, + "ingredient": "anvilcraft:polished_flint_block", "result": { "count": 2, "id": "anvilcraft:cut_flint_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_cut_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_cut_flint_block.json index d3bfd980ba..b1d06eca25 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_cut_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_cut_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_flint_block" - }, + "ingredient": "anvilcraft:cut_flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_flint_block.json index cda45d7137..093eab20d5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:flint_block" - }, + "ingredient": "anvilcraft:flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_polished_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_polished_flint_block.json index e33984fb94..d396d0eaf2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_flint_stairs_from_polished_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_flint_block" - }, + "ingredient": "anvilcraft:polished_flint_block", "result": { - "count": 1, "id": "anvilcraft:cut_flint_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_block.json index fec9e376bb..8beb94536a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:frost_metal_block" - }, + "ingredient": "anvilcraft:frost_metal_block", "result": { "count": 4, "id": "anvilcraft:cut_frost_metal_block" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json index eb6476d175..0c9b2d2f12 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_cut_frost_metal_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_frost_metal_block" - }, + "ingredient": "anvilcraft:cut_frost_metal_block", "result": { - "count": 1, "id": "anvilcraft:cut_frost_metal_pillar" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json index ad48f23b5e..2c99b598bb 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_pillar_from_frost_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:frost_metal_block" - }, + "ingredient": "anvilcraft:frost_metal_block", "result": { "count": 4, "id": "anvilcraft:cut_frost_metal_pillar" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json index 3a84ab4a8d..607aad2294 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_cut_frost_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_frost_metal_block" - }, + "ingredient": "anvilcraft:cut_frost_metal_block", "result": { "count": 2, "id": "anvilcraft:cut_frost_metal_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json index 4560d23329..8c87a6d728 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_slab_from_frost_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:frost_metal_block" - }, + "ingredient": "anvilcraft:frost_metal_block", "result": { "count": 8, "id": "anvilcraft:cut_frost_metal_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json index 685d8e858d..6debf6b7b3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_cut_frost_metal_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_frost_metal_block" - }, + "ingredient": "anvilcraft:cut_frost_metal_block", "result": { - "count": 1, "id": "anvilcraft:cut_frost_metal_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json index f7df5866b1..5eb1a56617 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_frost_metal_stairs_from_frost_metal_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:frost_metal_block" - }, + "ingredient": "anvilcraft:frost_metal_block", "result": { "count": 4, "id": "anvilcraft:cut_frost_metal_stairs" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block.json index 78b77acce3..34d2c035e2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:cut_heavy_iron_block" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json index 948a231dc9..ea554d2069 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_block_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:cut_heavy_iron_block" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json index a950962fe2..2f861caba4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_cut_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_block" - }, + "ingredient": "anvilcraft:cut_heavy_iron_block", "result": { "count": 2, "id": "anvilcraft:cut_heavy_iron_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json index 13bdd21187..496069327e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 16, "id": "anvilcraft:cut_heavy_iron_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json index 12511fc124..78c6ddabcd 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_slab_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:cut_heavy_iron_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json index 8d8e14701f..9108437d16 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_cut_heavy_iron_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_block" - }, + "ingredient": "anvilcraft:cut_heavy_iron_block", "result": { - "count": 1, "id": "anvilcraft:cut_heavy_iron_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json index 3e90f6f98d..27d3afd7a0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:cut_heavy_iron_stairs" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json index 56f71c49a2..b03f9dcb9a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_heavy_iron_stairs_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:cut_heavy_iron_stairs" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_block.json index b2a3aec4d2..b1f397e5a8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:royal_steel_block" - }, + "ingredient": "anvilcraft:royal_steel_block", "result": { "count": 4, "id": "anvilcraft:cut_royal_steel_block" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json index d7ba252bb5..0ece7a57e5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_cut_royal_steel_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_royal_steel_block" - }, + "ingredient": "anvilcraft:cut_royal_steel_block", "result": { - "count": 1, "id": "anvilcraft:cut_royal_steel_pillar" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json index b61b735a8b..8f8cf86408 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_pillar_from_royal_steel_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:royal_steel_block" - }, + "ingredient": "anvilcraft:royal_steel_block", "result": { "count": 4, "id": "anvilcraft:cut_royal_steel_pillar" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json index b7f5874241..61220f99ed 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_cut_royal_steel_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_royal_steel_block" - }, + "ingredient": "anvilcraft:cut_royal_steel_block", "result": { "count": 2, "id": "anvilcraft:cut_royal_steel_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json index 1e585bd042..a87cc6dd75 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_slab_from_royal_steel_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:royal_steel_block" - }, + "ingredient": "anvilcraft:royal_steel_block", "result": { "count": 8, "id": "anvilcraft:cut_royal_steel_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json index 7a5621b73a..e269a142dc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_cut_royal_steel_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_royal_steel_block" - }, + "ingredient": "anvilcraft:cut_royal_steel_block", "result": { - "count": 1, "id": "anvilcraft:cut_royal_steel_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json index 5b128069d5..48993e70ce 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cut_royal_steel_stairs_from_royal_steel_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:royal_steel_block" - }, + "ingredient": "anvilcraft:royal_steel_block", "result": { "count": 4, "id": "anvilcraft:cut_royal_steel_stairs" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_slab.json new file mode 100644 index 0000000000..748a714304 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:cyan_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:cyan_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_stair.json new file mode 100644 index 0000000000..6e072a8f29 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:cyan_reinforced_concrete", + "result": { + "id": "anvilcraft:cyan_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_wall.json new file mode 100644 index 0000000000..c899d34ddd --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/cyan_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:cyan_reinforced_concrete", + "result": { + "id": "anvilcraft:cyan_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..3eaff51c66 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:gray_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:gray_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..50b39cc0bf --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:gray_reinforced_concrete", + "result": { + "id": "anvilcraft:gray_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..0cbf3b68aa --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/gray_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:gray_reinforced_concrete", + "result": { + "id": "anvilcraft:gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_slab.json new file mode 100644 index 0000000000..6a41ff87b2 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:green_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:green_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_stair.json new file mode 100644 index 0000000000..16d535186e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:green_reinforced_concrete", + "result": { + "id": "anvilcraft:green_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_wall.json new file mode 100644 index 0000000000..80a1db27b6 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/green_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:green_reinforced_concrete", + "result": { + "id": "anvilcraft:green_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam.json index 2ce65034ad..27bc86dd49 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:heavy_iron_beam" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json index aabb7cdd47..b4007d453d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_cut_heavy_iron_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_block" - }, + "ingredient": "anvilcraft:cut_heavy_iron_block", "result": { - "count": 1, "id": "anvilcraft:heavy_iron_beam" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json index 163a470cf6..f07b8905d6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_beam_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:heavy_iron_beam" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column.json index 40efca7fee..ee93e275e7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:heavy_iron_column" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json index 89a2754844..85bc4118b8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_cut_heavy_iron_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_block" - }, + "ingredient": "anvilcraft:cut_heavy_iron_block", "result": { - "count": 1, "id": "anvilcraft:heavy_iron_column" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json index c6509b07a8..87bcd4aae5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_column_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:heavy_iron_column" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door.json index ad831c9721..62c0ebe2f9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:heavy_iron_door" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json index 3b4abdd77a..a993bb36fa 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_door_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 2, "id": "anvilcraft:heavy_iron_door" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate.json index cb86fdbcbd..c455299daa 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 16, "id": "anvilcraft:heavy_iron_plate" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json index 72efa827e9..40c1d09349 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_block" - }, + "ingredient": "anvilcraft:cut_heavy_iron_block", "result": { "count": 2, "id": "anvilcraft:heavy_iron_plate" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json index fb3ea58a7e..8c61c10e73 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_cut_heavy_iron_slab.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_slab" - }, + "ingredient": "anvilcraft:cut_heavy_iron_slab", "result": { - "count": 1, "id": "anvilcraft:heavy_iron_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json index fb6fc6963a..3106d0f87c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:heavy_iron_plate" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json index 518b9d4ce5..b2c961e0c1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_plate_from_polished_heavy_iron_slab.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_slab" - }, + "ingredient": "anvilcraft:polished_heavy_iron_slab", "result": { "count": 4, "id": "anvilcraft:heavy_iron_plate" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor.json index 6591ac27b2..56ac13c7e8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:heavy_iron_trapdoor" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json index 07156d518d..5850404551 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_cut_heavy_iron_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_block" - }, + "ingredient": "anvilcraft:cut_heavy_iron_block", "result": { - "count": 1, "id": "anvilcraft:heavy_iron_trapdoor" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json index 368a94f5b4..c672db34d2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_trapdoor_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:heavy_iron_trapdoor" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall.json index b2e589f8b8..5864e43e94 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 8, "id": "anvilcraft:heavy_iron_wall" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json index 8f84a08928..0798876c26 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_cut_heavy_iron_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:cut_heavy_iron_block" - }, + "ingredient": "anvilcraft:cut_heavy_iron_block", "result": { - "count": 1, "id": "anvilcraft:heavy_iron_wall" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json index 092734c1df..5f71d9043b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/heavy_iron_wall_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:heavy_iron_wall" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_slab.json new file mode 100644 index 0000000000..2aad54cb35 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:light_blue_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:light_blue_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_stair.json new file mode 100644 index 0000000000..ee86022b53 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:light_blue_reinforced_concrete", + "result": { + "id": "anvilcraft:light_blue_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_wall.json new file mode 100644 index 0000000000..977ec32e8d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_blue_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:light_blue_reinforced_concrete", + "result": { + "id": "anvilcraft:light_blue_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_slab.json new file mode 100644 index 0000000000..96ad0bcd6f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:light_gray_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:light_gray_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_stair.json new file mode 100644 index 0000000000..32f5c70bfc --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:light_gray_reinforced_concrete", + "result": { + "id": "anvilcraft:light_gray_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_wall.json new file mode 100644 index 0000000000..48ad49df23 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/light_gray_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:light_gray_reinforced_concrete", + "result": { + "id": "anvilcraft:light_gray_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_slab.json new file mode 100644 index 0000000000..795bdf2f55 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:lime_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:lime_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_stair.json new file mode 100644 index 0000000000..a90523beb9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:lime_reinforced_concrete", + "result": { + "id": "anvilcraft:lime_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_wall.json new file mode 100644 index 0000000000..2be02382bd --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/lime_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:lime_reinforced_concrete", + "result": { + "id": "anvilcraft:lime_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_slab.json new file mode 100644 index 0000000000..633bd39693 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:magenta_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:magenta_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_stair.json new file mode 100644 index 0000000000..41d58ec026 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:magenta_reinforced_concrete", + "result": { + "id": "anvilcraft:magenta_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_wall.json new file mode 100644 index 0000000000..51b8baab64 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/magenta_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:magenta_reinforced_concrete", + "result": { + "id": "anvilcraft:magenta_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_slab.json new file mode 100644 index 0000000000..9632df0902 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:orange_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:orange_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_stair.json new file mode 100644 index 0000000000..0625727569 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:orange_reinforced_concrete", + "result": { + "id": "anvilcraft:orange_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_wall.json new file mode 100644 index 0000000000..bc0148b3de --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/orange_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:orange_reinforced_concrete", + "result": { + "id": "anvilcraft:orange_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_slab.json new file mode 100644 index 0000000000..4bee2ca9f9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:pink_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:pink_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_stair.json new file mode 100644 index 0000000000..4df88ee132 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:pink_reinforced_concrete", + "result": { + "id": "anvilcraft:pink_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_wall.json new file mode 100644 index 0000000000..be73acf3aa --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/pink_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:pink_reinforced_concrete", + "result": { + "id": "anvilcraft:pink_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_flint_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_flint_block.json index b3a96e7b05..e4fe36b858 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_flint_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_flint_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:flint_block" - }, + "ingredient": "anvilcraft:flint_block", "result": { - "count": 1, "id": "anvilcraft:polished_flint_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_block.json index 6c6e916dd1..e224288b84 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 2, "id": "anvilcraft:polished_heavy_iron_block" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json index 5febfbd1e8..7cfcce6b8b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 4, "id": "anvilcraft:polished_heavy_iron_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json index 2472aafa40..59f814c095 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_slab_from_polished_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { "count": 2, "id": "anvilcraft:polished_heavy_iron_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json index 28c2a6ffdb..f79aac16af 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_heavy_iron_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:heavy_iron_block" - }, + "ingredient": "anvilcraft:heavy_iron_block", "result": { "count": 2, "id": "anvilcraft:polished_heavy_iron_stairs" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json index 1fd9a9b173..5b1d3253b8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/polished_heavy_iron_stairs_from_polished_heavy_iron_block.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:polished_heavy_iron_block" - }, + "ingredient": "anvilcraft:polished_heavy_iron_block", "result": { - "count": 1, "id": "anvilcraft:polished_heavy_iron_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_middle.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_middle.json index 91d2c86bb5..351c662cb1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_middle.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_middle.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:power_converter_big" - }, + "ingredient": "anvilcraft:power_converter_big", "result": { "count": 3, "id": "anvilcraft:power_converter_middle" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_big.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_big.json index a0bca37fbe..127d27d990 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_big.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_big.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:power_converter_big" - }, + "ingredient": "anvilcraft:power_converter_big", "result": { "count": 9, "id": "anvilcraft:power_converter_small" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_middle.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_middle.json index cdd034c41c..6c35f40c18 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_middle.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/power_converter_small_from_middle.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:power_converter_middle" - }, + "ingredient": "anvilcraft:power_converter_middle", "result": { "count": 3, "id": "anvilcraft:power_converter_small" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_slab.json new file mode 100644 index 0000000000..5abe5978f3 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:purple_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:purple_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_stair.json new file mode 100644 index 0000000000..94eb242935 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:purple_reinforced_concrete", + "result": { + "id": "anvilcraft:purple_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_wall.json new file mode 100644 index 0000000000..3fd5df0f52 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/purple_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:purple_reinforced_concrete", + "result": { + "id": "anvilcraft:purple_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_slab.json new file mode 100644 index 0000000000..02f6cead27 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:red_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:red_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8290e4f88c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:red_reinforced_concrete", + "result": { + "id": "anvilcraft:red_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_wall.json new file mode 100644 index 0000000000..fa170a87e9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/red_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:red_reinforced_concrete", + "result": { + "id": "anvilcraft:red_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_slab.json deleted file mode 100644 index d690a27cec..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_black" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_black_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_stair.json deleted file mode 100644 index 53beed6668..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_black" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_black_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_wall.json deleted file mode 100644 index 747059c8df..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_black_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_black" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_black_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_slab.json deleted file mode 100644 index ca629567aa..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_blue" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_blue_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_stair.json deleted file mode 100644 index 07e25528df..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_blue" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_blue_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_wall.json deleted file mode 100644 index 88998ff94d..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_blue_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_blue" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_slab.json deleted file mode 100644 index d8aca1f14c..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_brown" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_brown_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_stair.json deleted file mode 100644 index 91e3f3e93a..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_brown" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_brown_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_wall.json deleted file mode 100644 index 552522038e..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_brown_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_brown" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_brown_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_slab.json deleted file mode 100644 index c508e69fa9..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_cyan" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_cyan_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_stair.json deleted file mode 100644 index 558b528201..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_cyan" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_cyan_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_wall.json deleted file mode 100644 index d9786acc01..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_cyan_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_cyan" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_cyan_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_slab.json deleted file mode 100644 index d079f80ac5..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_gray" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_gray_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_stair.json deleted file mode 100644 index b4a30dbae8..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_gray" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_gray_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_wall.json deleted file mode 100644 index 131c30aeab..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_gray_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_gray" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_slab.json deleted file mode 100644 index 6818489e52..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_green" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_green_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_stair.json deleted file mode 100644 index 5a44a3b576..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_green" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_green_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_wall.json deleted file mode 100644 index 31765b4a93..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_green_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_green" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_green_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_slab.json deleted file mode 100644 index 8379a9af61..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_light_blue" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_light_blue_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_stair.json deleted file mode 100644 index 9ac54f6ad9..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_light_blue" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_light_blue_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_wall.json deleted file mode 100644 index ebfe12c3b4..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_blue_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_light_blue" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_light_blue_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_slab.json deleted file mode 100644 index 1d2a2df8da..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_light_gray" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_light_gray_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_stair.json deleted file mode 100644 index 6aa655b008..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_light_gray" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_light_gray_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_wall.json deleted file mode 100644 index 7425f20468..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_light_gray_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_light_gray" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_light_gray_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_slab.json deleted file mode 100644 index fe418d5a90..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_lime" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_lime_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_stair.json deleted file mode 100644 index df5009d5fa..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_lime" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_lime_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_wall.json deleted file mode 100644 index e6fcd4ebad..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_lime_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_lime" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_lime_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_slab.json deleted file mode 100644 index 367b7ef40b..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_magenta" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_magenta_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_stair.json deleted file mode 100644 index 13bec2f994..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_magenta" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_magenta_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_wall.json deleted file mode 100644 index dd29190037..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_magenta_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_magenta" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_magenta_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_slab.json deleted file mode 100644 index 38f17897c5..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_orange" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_orange_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_stair.json deleted file mode 100644 index 2d2f3b5665..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_orange" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_orange_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_wall.json deleted file mode 100644 index d9575e7eac..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_orange_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_orange" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_orange_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_slab.json deleted file mode 100644 index 131c1a8515..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_pink" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_pink_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_stair.json deleted file mode 100644 index 7e41088490..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_pink" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_pink_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_wall.json deleted file mode 100644 index e7e1144ed5..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_pink_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_pink" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_pink_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_slab.json deleted file mode 100644 index 1c185988ac..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_purple" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_purple_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_stair.json deleted file mode 100644 index 3379658f49..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_purple" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_purple_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_wall.json deleted file mode 100644 index 1f84b514c5..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_purple_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_purple" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_purple_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_slab.json deleted file mode 100644 index ea4783792e..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_red" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_red_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_stair.json deleted file mode 100644 index fc9571c637..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_red" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_red_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_wall.json deleted file mode 100644 index 6ddbab62c0..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_red_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_red" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_red_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_slab.json deleted file mode 100644 index c2d379aba6..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_white" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_white_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_stair.json deleted file mode 100644 index 4cc524849e..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_white" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_white_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_wall.json deleted file mode 100644 index 389d1eb5d2..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_white_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_white" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_white_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_slab.json deleted file mode 100644 index c87230dc70..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_slab.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_yellow" - }, - "result": { - "count": 2, - "id": "anvilcraft:reinforced_concrete_yellow_slab" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_stair.json deleted file mode 100644 index 03927ae13a..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_stair.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_yellow" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_yellow_stair" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_wall.json deleted file mode 100644 index 1bb0566bd0..0000000000 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/reinforced_concrete_yellow_wall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:reinforced_concrete_yellow" - }, - "result": { - "count": 1, - "id": "anvilcraft:reinforced_concrete_yellow_wall" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/smooth_royal_steel_block.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/smooth_royal_steel_block.json index dfe3980ffe..a6b639c6d7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/smooth_royal_steel_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/smooth_royal_steel_block.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:royal_steel_block" - }, + "ingredient": "anvilcraft:royal_steel_block", "result": { "count": 4, "id": "anvilcraft:smooth_royal_steel_block" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_slab.json index 9ebc2ac564..ae140ed1c0 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_slab.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:white_chocolate_block" - }, + "ingredient": "anvilcraft:white_chocolate_block", "result": { "count": 2, "id": "anvilcraft:white_chocolate_slab" diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_stairs.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_stairs.json index 15efad7006..72c3324fa3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_stairs.json +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_chocolate_stairs.json @@ -1,10 +1,7 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "anvilcraft:white_chocolate_block" - }, + "ingredient": "anvilcraft:white_chocolate_block", "result": { - "count": 1, "id": "anvilcraft:white_chocolate_stairs" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..176a67a25a --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:white_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:white_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..5f394d22ec --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:white_reinforced_concrete", + "result": { + "id": "anvilcraft:white_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_wall.json new file mode 100644 index 0000000000..8e9c7d0afb --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/white_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:white_reinforced_concrete", + "result": { + "id": "anvilcraft:white_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..71c1410572 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_slab.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:yellow_reinforced_concrete", + "result": { + "count": 2, + "id": "anvilcraft:yellow_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..af0b6afcec --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_stair.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:yellow_reinforced_concrete", + "result": { + "id": "anvilcraft:yellow_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_wall.json new file mode 100644 index 0000000000..a9ae5d5182 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/stonecutting/yellow_reinforced_concrete_wall.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "anvilcraft:yellow_reinforced_concrete", + "result": { + "id": "anvilcraft:yellow_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/sugar_block.json b/src/generated/resources/data/anvilcraft/recipe/sugar_block.json index 0f2dbebc5f..16e35b57d4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/sugar_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/sugar_block.json @@ -2,36 +2,17 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - }, - { - "item": "minecraft:sugar" - } + "minecraft:sugar", + "minecraft:sugar", + "minecraft:sugar", + "minecraft:sugar", + "minecraft:sugar", + "minecraft:sugar", + "minecraft:sugar", + "minecraft:sugar", + "minecraft:sugar" ], "result": { - "count": 1, "id": "anvilcraft:sugar_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/sugar_from_sugar_block.json b/src/generated/resources/data/anvilcraft/recipe/sugar_from_sugar_block.json index cfb13cdd98..25b4b74509 100644 --- a/src/generated/resources/data/anvilcraft/recipe/sugar_from_sugar_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/sugar_from_sugar_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "building", "ingredients": [ - { - "item": "anvilcraft:sugar_block" - } + "anvilcraft:sugar_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_cobblestone.json b/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_cobblestone.json index 8b51ee2ea8..e8bc6e8b83 100644 --- a/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_cobblestone.json +++ b/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_cobblestone.json @@ -1,6 +1,6 @@ { "type": "anvilcraft:super_heating", - "consume": -1000, + "fluid": "minecraft:null", "ingredients": [ { "count": 4, @@ -10,5 +10,6 @@ "items": "anvilcraft:lime_powder" } ], + "produce": 1000, "transform": "minecraft:lava" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_stone.json b/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_stone.json index 7c4339b05b..b3ed6ab9c5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_stone.json +++ b/src/generated/resources/data/anvilcraft/recipe/super_heating/lava_from_stone.json @@ -1,6 +1,6 @@ { "type": "anvilcraft:super_heating", - "consume": -1000, + "fluid": "minecraft:null", "ingredients": [ { "count": 4, @@ -10,5 +10,6 @@ "items": "anvilcraft:lime_powder" } ], + "produce": 1000, "transform": "minecraft:lava" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_chromatic_stone.json b/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_chromatic_stone.json index 4526678aa8..6b317f50d7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_chromatic_stone.json +++ b/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_chromatic_stone.json @@ -1,10 +1,11 @@ { "type": "anvilcraft:super_heating", - "consume": -1000, + "fluid": "minecraft:null", "ingredients": [ { "items": "anvilcraft:chromatic_stone" } ], + "produce": 1000, "transform": "anvilcraft:melt_gem" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_gem_block.json b/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_gem_block.json index 3532a21c59..16e9c439a6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_gem_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/super_heating/melt_gem_cauldron_from_gem_block.json @@ -1,10 +1,11 @@ { "type": "anvilcraft:super_heating", - "consume": -1000, + "fluid": "minecraft:null", "ingredients": [ { "items": "#anvilcraft:gem_blocks" } ], + "produce": 1000, "transform": "anvilcraft:melt_gem" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/tesla_tower.json b/src/generated/resources/data/anvilcraft/recipe/tesla_tower.json index f1164a4789..4647475c46 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tesla_tower.json +++ b/src/generated/resources/data/anvilcraft/recipe/tesla_tower.json @@ -2,18 +2,10 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:royal_steel_ingot" - }, - "B": { - "item": "anvilcraft:topaz_block" - }, - "C": { - "item": "anvilcraft:transmission_pole" - }, - "D": { - "item": "anvilcraft:circuit_board" - } + "A": "anvilcraft:royal_steel_ingot", + "B": "anvilcraft:topaz_block", + "C": "anvilcraft:transmission_pole", + "D": "anvilcraft:circuit_board" }, "pattern": [ "ABA", @@ -21,7 +13,6 @@ "ADA" ], "result": { - "count": 1, "id": "anvilcraft:tesla_tower" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/amber_block.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/amber_block.json index 8dab76f2a6..b8058b85e3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/amber_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/amber_block.json @@ -2,12 +2,14 @@ "type": "anvilcraft:time_warp", "ingredients": [ { - "items": "anvilcraft:resin_block", - "predicates": { - "anvillib:not": { - "anvilcraft:saved_entity": {} + "components": { + "predicates": { + "anvillib:not": { + "anvilcraft:saved_entity": {} + } } - } + }, + "items": "anvilcraft:resin_block" } ], "results": [ diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_0.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_0.json index 382431d903..f06c1d4b92 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_0.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_0.json @@ -1,7 +1,8 @@ { "type": "anvilcraft:time_warp", "consume": 1000, - "fluid": "anvilcraft:fire", + "fluid": "anvilcraft:oil", + "ignited": true, "ingredients": [ { "items": "#anvilcraft:netherite_block" @@ -12,6 +13,5 @@ "count": 3, "id": "anvilcraft:ember_metal_ingot" } - ], - "transform": "anvilcraft:fire" + ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_1.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_1.json index b3173217e5..c60bd5782e 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_1.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_1.json @@ -1,7 +1,8 @@ { "type": "anvilcraft:time_warp", "consume": 1000, - "fluid": "anvilcraft:fire", + "fluid": "anvilcraft:oil", + "ignited": true, "ingredients": [ { "items": "#anvilcraft:netherite_block" @@ -15,6 +16,5 @@ "count": 4, "id": "anvilcraft:ember_metal_ingot" } - ], - "transform": "anvilcraft:fire" + ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_2.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_2.json index 807ca794bf..5c6ef519b1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_2.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_2.json @@ -1,7 +1,8 @@ { "type": "anvilcraft:time_warp", "consume": 1000, - "fluid": "anvilcraft:fire", + "fluid": "anvilcraft:oil", + "ignited": true, "ingredients": [ { "items": "#anvilcraft:netherite_block" @@ -16,6 +17,5 @@ "count": 5, "id": "anvilcraft:ember_metal_ingot" } - ], - "transform": "anvilcraft:fire" + ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_3.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_3.json index fd549df996..447e4dbbe1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_3.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/ember_metal_ingot_3.json @@ -1,7 +1,8 @@ { "type": "anvilcraft:time_warp", "consume": 1000, - "fluid": "anvilcraft:fire", + "fluid": "anvilcraft:oil", + "ignited": true, "ingredients": [ { "items": "#anvilcraft:netherite_block" @@ -16,6 +17,5 @@ "count": 6, "id": "anvilcraft:ember_metal_ingot" } - ], - "transform": "anvilcraft:fire" + ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/mob_amber_block.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/mob_amber_block.json index 1043d60658..04f2da1035 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/mob_amber_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/mob_amber_block.json @@ -12,14 +12,16 @@ } ], "item": { - "items": "anvilcraft:resin_block", - "predicates": { - "anvillib:not": { - "anvilcraft:saved_entity": { - "is_monster": true + "components": { + "predicates": { + "anvillib:not": { + "anvilcraft:saved_entity": { + "is_monster": true + } } } - } + }, + "items": "anvilcraft:resin_block" }, "offset": [ 0.0, @@ -34,15 +36,6 @@ } ], "icon": { - "components": { - "anvilcraft:saved_entity": { - "isMonster": false, - "tag": { - "id": "minecraft:mooshroom" - } - } - }, - "count": 1, "id": "anvilcraft:mob_amber_block" }, "max_efficiency": 1, @@ -75,14 +68,6 @@ "outcomes": [ { "type": "anvillib_recipe:spawn_item", - "components": { - "anvilcraft:saved_entity": { - "isMonster": false, - "tag": { - "id": "minecraft:mooshroom" - } - } - }, "functions": [ { "type": "anvillib_recipe:apply_tag_2_component", diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_beef.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_beef.json index eb042bce63..4da63635e7 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_beef.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_beef.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 16, "items": "#c:foods/raw_beef" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_chicken.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_chicken.json index 90dc062b0b..bf82ed41a6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_chicken.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_chicken.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 64, "items": "#c:foods/raw_chicken" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_fish.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_fish.json index ca81031163..2e8ccce4e1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_fish.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_fish.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 64, "items": "#c:foods/raw_fish" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_mutton.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_mutton.json index 7e09fb6121..44a237c2db 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_mutton.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_mutton.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 16, "items": "#c:foods/raw_mutton" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_porkchop.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_porkchop.json index 1fa1f4d9d0..1996703658 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_porkchop.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_porkchop.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 16, "items": "#c:foods/raw_porkchop" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_rabbit.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_rabbit.json index 06f3baeb14..2e4ce17b35 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_rabbit.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_foods/raw_rabbit.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 16, "items": "#c:foods/raw_rabbit" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_piglin_head.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_piglin_head.json index 5ea8eaf515..4974d3427b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_piglin_head.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_piglin_head.json @@ -1,10 +1,11 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "items": "minecraft:piglin_head" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_rotten_flesh.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_rotten_flesh.json index 583ecdfe61..c18a56ac20 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_rotten_flesh.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_rotten_flesh.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 64, "items": "minecraft:rotten_flesh" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_spider_eye.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_spider_eye.json index aca1911a8c..f2d4c6a3a6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_spider_eye.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_spider_eye.json @@ -1,11 +1,12 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "count": 64, "items": "minecraft:spider_eye" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_zombie_head.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_zombie_head.json index 6e45ea0189..99c4b93681 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_zombie_head.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/oil_from_zombie_head.json @@ -1,10 +1,11 @@ { "type": "anvilcraft:time_warp", - "consume": -250, + "fluid": "minecraft:null", "ingredients": [ { "items": "minecraft:zombie_head" } ], + "produce": 250, "transform": "anvilcraft:oil" } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/time_warp/resentful_amber_block.json b/src/generated/resources/data/anvilcraft/recipe/time_warp/resentful_amber_block.json index a91dd1f252..10034d9fc2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/time_warp/resentful_amber_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/time_warp/resentful_amber_block.json @@ -12,12 +12,14 @@ } ], "item": { - "items": "anvilcraft:resin_block", - "predicates": { - "anvilcraft:saved_entity": { - "is_monster": true + "components": { + "predicates": { + "anvilcraft:saved_entity": { + "is_monster": true + } } - } + }, + "items": "anvilcraft:resin_block" }, "offset": [ 0.0, @@ -32,15 +34,6 @@ } ], "icon": { - "components": { - "anvilcraft:saved_entity": { - "isMonster": true, - "tag": { - "id": "minecraft:zombie" - } - } - }, - "count": 1, "id": "anvilcraft:resentful_amber_block" }, "max_efficiency": 1, @@ -77,14 +70,6 @@ { "outcome": { "type": "anvillib_recipe:spawn_item", - "components": { - "anvilcraft:saved_entity": { - "isMonster": false, - "tag": { - "id": "minecraft:mooshroom" - } - } - }, "functions": [ { "type": "anvillib_recipe:apply_tag_2_component", @@ -104,14 +89,6 @@ { "outcome": { "type": "anvillib_recipe:spawn_item", - "components": { - "anvilcraft:saved_entity": { - "isMonster": true, - "tag": { - "id": "minecraft:zombie" - } - } - }, "functions": [ { "type": "anvillib_recipe:apply_tag_2_component", diff --git a/src/generated/resources/data/anvilcraft/recipe/tin_block.json b/src/generated/resources/data/anvilcraft/recipe/tin_block.json index 796b449153..518f11aec8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tin_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/tin_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/tin" - } + "A": "#c:ingots/tin" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:tin_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/tin_ingot.json b/src/generated/resources/data/anvilcraft/recipe/tin_ingot.json index 949e158b98..1fa7c5b205 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tin_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/tin_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:tin_ingot", "key": { - "A": { - "tag": "c:nuggets/tin" - } + "A": "#c:nuggets/tin" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:tin_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/tin_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/tin_ingot_from_block.json index 834abe4e27..669c80950b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tin_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/tin_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:tin_ingot", "ingredients": [ - { - "item": "anvilcraft:tin_block" - } + "anvilcraft:tin_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/tin_nugget.json b/src/generated/resources/data/anvilcraft/recipe/tin_nugget.json index 020258f871..1348826f52 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tin_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/tin_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/tin" - } + "#c:ingots/tin" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/tin_pressure_plate_from_ingots_tin.json b/src/generated/resources/data/anvilcraft/recipe/tin_pressure_plate_from_ingots_tin.json index 817fc70be1..55674b631a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tin_pressure_plate_from_ingots_tin.json +++ b/src/generated/resources/data/anvilcraft/recipe/tin_pressure_plate_from_ingots_tin.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/tin" - } + "A": "#c:ingots/tin" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:tin_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/titanium_block.json b/src/generated/resources/data/anvilcraft/recipe/titanium_block.json index e8bd099f9f..e52cadf5e2 100644 --- a/src/generated/resources/data/anvilcraft/recipe/titanium_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/titanium_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/titanium" - } + "A": "#c:ingots/titanium" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:titanium_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/titanium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/titanium_ingot.json index 5abec70947..f90da64a26 100644 --- a/src/generated/resources/data/anvilcraft/recipe/titanium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/titanium_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:titanium_ingot", "key": { - "A": { - "tag": "c:nuggets/titanium" - } + "A": "#c:nuggets/titanium" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:titanium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/titanium_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/titanium_ingot_from_block.json index 0ec94325fd..3499eb6fa9 100644 --- a/src/generated/resources/data/anvilcraft/recipe/titanium_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/titanium_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:titanium_ingot", "ingredients": [ - { - "item": "anvilcraft:titanium_block" - } + "anvilcraft:titanium_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/titanium_nugget.json b/src/generated/resources/data/anvilcraft/recipe/titanium_nugget.json index fc6139fd99..bc924ccf4f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/titanium_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/titanium_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/titanium" - } + "#c:ingots/titanium" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/titanium_pressure_plate_from_ingots_titanium.json b/src/generated/resources/data/anvilcraft/recipe/titanium_pressure_plate_from_ingots_titanium.json index befa1ec7a9..76367d2d6d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/titanium_pressure_plate_from_ingots_titanium.json +++ b/src/generated/resources/data/anvilcraft/recipe/titanium_pressure_plate_from_ingots_titanium.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/titanium" - } + "A": "#c:ingots/titanium" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:titanium_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/topaz.json b/src/generated/resources/data/anvilcraft/recipe/topaz.json index 40f8ceabd4..20210da448 100644 --- a/src/generated/resources/data/anvilcraft/recipe/topaz.json +++ b/src/generated/resources/data/anvilcraft/recipe/topaz.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:topaz_block" - } + "anvilcraft:topaz_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/topaz_block.json b/src/generated/resources/data/anvilcraft/recipe/topaz_block.json index 56b01c9a50..1c1a133517 100644 --- a/src/generated/resources/data/anvilcraft/recipe/topaz_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/topaz_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:topaz" - } + "A": "anvilcraft:topaz" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:topaz_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/totem_of_rage.json b/src/generated/resources/data/anvilcraft/recipe/totem_of_rage.json index 28bf012696..d64d18c584 100644 --- a/src/generated/resources/data/anvilcraft/recipe/totem_of_rage.json +++ b/src/generated/resources/data/anvilcraft/recipe/totem_of_rage.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:totem_of_undying" - }, - "B": { - "item": "anvilcraft:cursed_gold_block" - }, - "C": { - "item": "anvilcraft:ember_metal_nugget" - } + "A": "minecraft:totem_of_undying", + "B": "anvilcraft:cursed_gold_block", + "C": "anvilcraft:ember_metal_nugget" }, "pattern": [ "BBB", @@ -18,7 +12,6 @@ "BBB" ], "result": { - "count": 1, "id": "anvilcraft:totem_of_rage" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/totem_of_recovery.json b/src/generated/resources/data/anvilcraft/recipe/totem_of_recovery.json index fa537dbfe4..5058569e79 100644 --- a/src/generated/resources/data/anvilcraft/recipe/totem_of_recovery.json +++ b/src/generated/resources/data/anvilcraft/recipe/totem_of_recovery.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:totem_of_undying" - }, - "B": { - "item": "anvilcraft:recovery_pearl" - }, - "C": { - "item": "minecraft:echo_shard" - } + "A": "minecraft:totem_of_undying", + "B": "anvilcraft:recovery_pearl", + "C": "minecraft:echo_shard" }, "pattern": [ "CCC", @@ -18,7 +12,6 @@ "CCC" ], "result": { - "count": 1, "id": "anvilcraft:totem_of_recovery" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/transcendence_dragon_rod.json b/src/generated/resources/data/anvilcraft/recipe/transcendence_dragon_rod.json index 9e9ea0aea3..e6361c9440 100644 --- a/src/generated/resources/data/anvilcraft/recipe/transcendence_dragon_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/transcendence_dragon_rod.json @@ -2,15 +2,10 @@ "type": "minecraft:crafting_shapeless", "category": "equipment", "ingredients": [ - { - "item": "anvilcraft:block_devourer" - }, - { - "item": "anvilcraft:transcendence_anvil_hammer" - } + "anvilcraft:block_devourer", + "anvilcraft:transcendence_anvil_hammer" ], "result": { - "count": 1, "id": "anvilcraft:transcendence_dragon_rod" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/transcendium_block.json b/src/generated/resources/data/anvilcraft/recipe/transcendium_block.json index d9f1762680..82db11d489 100644 --- a/src/generated/resources/data/anvilcraft/recipe/transcendium_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/transcendium_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:transcendium_ingot" - } + "A": "anvilcraft:transcendium_ingot" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:transcendium_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot.json index 640f4fbe05..a215734ed4 100644 --- a/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:transcendium_ingot", "key": { - "A": { - "item": "anvilcraft:transcendium_nugget" - } + "A": "anvilcraft:transcendium_nugget" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:transcendium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot_from_block.json index 40d02dba31..b3db64ece5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/transcendium_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:transcendium_ingot", "ingredients": [ - { - "item": "anvilcraft:transcendium_block" - } + "anvilcraft:transcendium_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/transcendium_nugget_from_ingot.json b/src/generated/resources/data/anvilcraft/recipe/transcendium_nugget_from_ingot.json index c3ef7dbe35..cbcd16ae28 100644 --- a/src/generated/resources/data/anvilcraft/recipe/transcendium_nugget_from_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/transcendium_nugget_from_ingot.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:transcendium_ingot" - } + "anvilcraft:transcendium_ingot" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/transmission_pole.json b/src/generated/resources/data/anvilcraft/recipe/transmission_pole.json index 3b002e0a78..ba0520401c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/transmission_pole.json +++ b/src/generated/resources/data/anvilcraft/recipe/transmission_pole.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:magnetoelectric_core" - }, - "B": { - "item": "minecraft:lightning_rod" - }, - "C": { - "item": "minecraft:iron_block" - } + "A": "anvilcraft:magnetoelectric_core", + "B": "minecraft:lightning_rod", + "C": "minecraft:iron_block" }, "pattern": [ "A", @@ -18,7 +12,6 @@ "C" ], "result": { - "count": 1, "id": "anvilcraft:transmission_pole" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/transparent_crafting_table.json b/src/generated/resources/data/anvilcraft/recipe/transparent_crafting_table.json index 5adce39707..68c0791362 100644 --- a/src/generated/resources/data/anvilcraft/recipe/transparent_crafting_table.json +++ b/src/generated/resources/data/anvilcraft/recipe/transparent_crafting_table.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "minecraft:amethyst_shard" - }, - "B": { - "item": "minecraft:crafting_table" - } + "A": "minecraft:amethyst_shard", + "B": "minecraft:crafting_table" }, "pattern": [ " A ", @@ -15,7 +11,6 @@ " A " ], "result": { - "count": 1, "id": "anvilcraft:transparent_crafting_table" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/trident.json b/src/generated/resources/data/anvilcraft/recipe/trident.json index e62c4ab2c3..dbf20b7540 100644 --- a/src/generated/resources/data/anvilcraft/recipe/trident.json +++ b/src/generated/resources/data/anvilcraft/recipe/trident.json @@ -2,12 +2,8 @@ "type": "minecraft:crafting_shaped", "category": "equipment", "key": { - "A": { - "item": "anvilcraft:prismarine_blade" - }, - "B": { - "item": "minecraft:prismarine_bricks" - } + "A": "anvilcraft:prismarine_blade", + "B": "minecraft:prismarine_bricks" }, "pattern": [ " AA", @@ -15,7 +11,6 @@ "B " ], "result": { - "count": 1, "id": "minecraft:trident" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/tungsten_block.json b/src/generated/resources/data/anvilcraft/recipe/tungsten_block.json index 3a7baebbdf..70082ea0e8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tungsten_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/tungsten_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/tungsten" - } + "A": "#c:ingots/tungsten" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:tungsten_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot.json b/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot.json index 8bcf9eb9d1..f0fb8ff318 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:tungsten_ingot", "key": { - "A": { - "tag": "c:nuggets/tungsten" - } + "A": "#c:nuggets/tungsten" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:tungsten_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot_from_block.json index 2c57e6aa5a..2bfec2a8be 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/tungsten_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:tungsten_ingot", "ingredients": [ - { - "item": "anvilcraft:tungsten_block" - } + "anvilcraft:tungsten_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/tungsten_nugget.json b/src/generated/resources/data/anvilcraft/recipe/tungsten_nugget.json index 378f5f10c6..44d626a599 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tungsten_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/tungsten_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/tungsten" - } + "#c:ingots/tungsten" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/tungsten_pressure_plate_from_ingots_tungsten.json b/src/generated/resources/data/anvilcraft/recipe/tungsten_pressure_plate_from_ingots_tungsten.json index 05d8756f63..b758b1595c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/tungsten_pressure_plate_from_ingots_tungsten.json +++ b/src/generated/resources/data/anvilcraft/recipe/tungsten_pressure_plate_from_ingots_tungsten.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/tungsten" - } + "A": "#c:ingots/tungsten" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:tungsten_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_heavy_halberd.json b/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_heavy_halberd.json index c6d3cdb7b8..9fcb7ccfe8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_heavy_halberd.json +++ b/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_heavy_halberd.json @@ -22,7 +22,9 @@ ] } ], - "result": "anvilcraft:transcendence_heavy_halberd", + "result": { + "id": "anvilcraft:transcendence_heavy_halberd" + }, "template": { "items": "anvilcraft:two_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_resonator.json b/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_resonator.json index 26ba0e1264..1da52b7b7c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_resonator.json +++ b/src/generated/resources/data/anvilcraft/recipe/two_to_one_smithing/transcendence_resonator.json @@ -22,7 +22,9 @@ ] } ], - "result": "anvilcraft:transcendence_resonator", + "result": { + "id": "anvilcraft:transcendence_resonator" + }, "template": { "items": "anvilcraft:two_to_one_smithing_template" } diff --git a/src/generated/resources/data/anvilcraft/recipe/uranium_block.json b/src/generated/resources/data/anvilcraft/recipe/uranium_block.json index cf8631f15e..189bbd602c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/uranium_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/uranium_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/uranium" - } + "A": "#c:ingots/uranium" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:uranium_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/uranium_ingot.json b/src/generated/resources/data/anvilcraft/recipe/uranium_ingot.json index 287b343fd5..083c7bfce8 100644 --- a/src/generated/resources/data/anvilcraft/recipe/uranium_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/uranium_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:uranium_ingot", "key": { - "A": { - "tag": "c:nuggets/uranium" - } + "A": "#c:nuggets/uranium" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:uranium_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/uranium_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/uranium_ingot_from_block.json index 39b66108be..0602bf3bee 100644 --- a/src/generated/resources/data/anvilcraft/recipe/uranium_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/uranium_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:uranium_ingot", "ingredients": [ - { - "item": "anvilcraft:uranium_block" - } + "anvilcraft:uranium_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/uranium_nugget.json b/src/generated/resources/data/anvilcraft/recipe/uranium_nugget.json index 0846850c48..0252a0cc1f 100644 --- a/src/generated/resources/data/anvilcraft/recipe/uranium_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/uranium_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/uranium" - } + "#c:ingots/uranium" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/uranium_pressure_plate_from_ingots_uranium.json b/src/generated/resources/data/anvilcraft/recipe/uranium_pressure_plate_from_ingots_uranium.json index 10746535b1..8a4cb24fd1 100644 --- a/src/generated/resources/data/anvilcraft/recipe/uranium_pressure_plate_from_ingots_uranium.json +++ b/src/generated/resources/data/anvilcraft/recipe/uranium_pressure_plate_from_ingots_uranium.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/uranium" - } + "A": "#c:ingots/uranium" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:uranium_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/void_energy_collector.json b/src/generated/resources/data/anvilcraft/recipe/void_energy_collector.json index e7df8357f9..41cd295d1d 100644 --- a/src/generated/resources/data/anvilcraft/recipe/void_energy_collector.json +++ b/src/generated/resources/data/anvilcraft/recipe/void_energy_collector.json @@ -2,15 +2,9 @@ "type": "minecraft:crafting_shaped", "category": "misc", "key": { - "A": { - "item": "anvilcraft:void_matter_block" - }, - "B": { - "item": "anvilcraft:charge_collector" - }, - "C": { - "item": "anvilcraft:heavy_iron_block" - } + "A": "anvilcraft:void_matter_block", + "B": "anvilcraft:charge_collector", + "C": "anvilcraft:heavy_iron_block" }, "pattern": [ "AAA", @@ -18,7 +12,6 @@ "CCC" ], "result": { - "count": 1, "id": "anvilcraft:void_energy_collector" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/void_matter.json b/src/generated/resources/data/anvilcraft/recipe/void_matter.json index 284c3d4a90..fd4cd500bc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/void_matter.json +++ b/src/generated/resources/data/anvilcraft/recipe/void_matter.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:void_matter_block" - } + "anvilcraft:void_matter_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/void_matter_block.json b/src/generated/resources/data/anvilcraft/recipe/void_matter_block.json index 7e0aa05a78..9a3ef1f907 100644 --- a/src/generated/resources/data/anvilcraft/recipe/void_matter_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/void_matter_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:void_matter" - } + "A": "anvilcraft:void_matter" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:void_matter_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/wet_sponge.json b/src/generated/resources/data/anvilcraft/recipe/wet_sponge.json index 7f01eecda5..dc1d518975 100644 --- a/src/generated/resources/data/anvilcraft/recipe/wet_sponge.json +++ b/src/generated/resources/data/anvilcraft/recipe/wet_sponge.json @@ -2,16 +2,13 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:sponge_gemmule" - } + "A": "anvilcraft:sponge_gemmule" }, "pattern": [ "AA", "AA" ], "result": { - "count": 1, "id": "minecraft:wet_sponge" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json index bbfc91dae3..f733d75dfc 100644 --- a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:chocolate_white" - } + "A": "anvilcraft:chocolate_white" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:white_chocolate_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json index 3fda92f365..588c08d2ec 100644 --- a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "item": "anvilcraft:white_chocolate_block" - } + "anvilcraft:white_chocolate_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_slab.json b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_slab.json index fd63f936d7..377a55b169 100644 --- a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_slab.json +++ b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_slab.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:white_chocolate_block" - } + "A": "anvilcraft:white_chocolate_block" }, "pattern": [ "AAA" diff --git a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_stairs.json b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_stairs.json index 80b0036b30..472049cec6 100644 --- a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_stairs.json +++ b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_stairs.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "item": "anvilcraft:white_chocolate_block" - } + "A": "anvilcraft:white_chocolate_block" }, "pattern": [ "A ", diff --git a/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_slab.json new file mode 100644 index 0000000000..8f6b2b3d67 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:white_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:white_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_stair.json new file mode 100644 index 0000000000..8e6db22636 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:white_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:white_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_wall.json new file mode 100644 index 0000000000..bb68a84070 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/white_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:white_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:white_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_slab.json b/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_slab.json new file mode 100644 index 0000000000..8e9997b7a8 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_slab.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:yellow_reinforced_concrete" + }, + "pattern": [ + "AAA" + ], + "result": { + "count": 6, + "id": "anvilcraft:yellow_reinforced_concrete_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_stair.json b/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_stair.json new file mode 100644 index 0000000000..58aebe9443 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_stair.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:yellow_reinforced_concrete" + }, + "pattern": [ + "A ", + "AA ", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:yellow_reinforced_concrete_stair" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_wall.json b/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_wall.json new file mode 100644 index 0000000000..9b71a67106 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/recipe/yellow_reinforced_concrete_wall.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": "anvilcraft:yellow_reinforced_concrete" + }, + "pattern": [ + "AAA", + "AAA" + ], + "result": { + "count": 4, + "id": "anvilcraft:yellow_reinforced_concrete_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/zinc_block.json b/src/generated/resources/data/anvilcraft/recipe/zinc_block.json index 379455d83c..b7a753816b 100644 --- a/src/generated/resources/data/anvilcraft/recipe/zinc_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/zinc_block.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": { - "tag": "c:ingots/zinc" - } + "A": "#c:ingots/zinc" }, "pattern": [ "AAA", @@ -12,7 +10,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:zinc_block" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/zinc_ingot.json b/src/generated/resources/data/anvilcraft/recipe/zinc_ingot.json index ba94611895..aa2cd04df3 100644 --- a/src/generated/resources/data/anvilcraft/recipe/zinc_ingot.json +++ b/src/generated/resources/data/anvilcraft/recipe/zinc_ingot.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:zinc_ingot", "key": { - "A": { - "tag": "c:nuggets/zinc" - } + "A": "#c:nuggets/zinc" }, "pattern": [ "AAA", @@ -13,7 +11,6 @@ "AAA" ], "result": { - "count": 1, "id": "anvilcraft:zinc_ingot" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/zinc_ingot_from_block.json b/src/generated/resources/data/anvilcraft/recipe/zinc_ingot_from_block.json index 91f32bd38c..45324bdcec 100644 --- a/src/generated/resources/data/anvilcraft/recipe/zinc_ingot_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/zinc_ingot_from_block.json @@ -3,9 +3,7 @@ "category": "misc", "group": "anvilcraft:zinc_ingot", "ingredients": [ - { - "item": "anvilcraft:zinc_block" - } + "anvilcraft:zinc_block" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/zinc_nugget.json b/src/generated/resources/data/anvilcraft/recipe/zinc_nugget.json index a05222d60b..312664aada 100644 --- a/src/generated/resources/data/anvilcraft/recipe/zinc_nugget.json +++ b/src/generated/resources/data/anvilcraft/recipe/zinc_nugget.json @@ -2,9 +2,7 @@ "type": "minecraft:crafting_shapeless", "category": "misc", "ingredients": [ - { - "tag": "c:ingots/zinc" - } + "#c:ingots/zinc" ], "result": { "count": 9, diff --git a/src/generated/resources/data/anvilcraft/recipe/zinc_pressure_plate_from_ingots_zinc.json b/src/generated/resources/data/anvilcraft/recipe/zinc_pressure_plate_from_ingots_zinc.json index d8014a37ab..021467f279 100644 --- a/src/generated/resources/data/anvilcraft/recipe/zinc_pressure_plate_from_ingots_zinc.json +++ b/src/generated/resources/data/anvilcraft/recipe/zinc_pressure_plate_from_ingots_zinc.json @@ -2,15 +2,12 @@ "type": "minecraft:crafting_shaped", "category": "redstone", "key": { - "A": { - "tag": "c:ingots/zinc" - } + "A": "#c:ingots/zinc" }, "pattern": [ "AA" ], "result": { - "count": 1, "id": "anvilcraft:zinc_pressure_plate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/block/void_decay_products.json b/src/generated/resources/data/anvilcraft/tags/block/void_decay_products.json index 976c2d0696..9a9ea95b8a 100644 --- a/src/generated/resources/data/anvilcraft/tags/block/void_decay_products.json +++ b/src/generated/resources/data/anvilcraft/tags/block/void_decay_products.json @@ -1,5 +1,10 @@ { "values": [ + "anvilcraft:end_dust", + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:void_stone", "anvilcraft:flint_block", "minecraft:stone", "minecraft:deepslate", @@ -39,11 +44,6 @@ "minecraft:infested_deepslate", "minecraft:nether_gold_ore", "minecraft:gilded_blackstone", - "minecraft:nether_quartz_ore", - "anvilcraft:void_stone", - "anvilcraft:end_dust", - "anvilcraft:deepslate_tin_ore", - "anvilcraft:deepslate_zinc_ore", - "anvilcraft:deepslate_lead_ore" + "minecraft:nether_quartz_ore" ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/fluid/ignitable.json b/src/generated/resources/data/anvilcraft/tags/fluid/ignitable.json new file mode 100644 index 0000000000..15388b222f --- /dev/null +++ b/src/generated/resources/data/anvilcraft/tags/fluid/ignitable.json @@ -0,0 +1,5 @@ +{ + "values": [ + "anvilcraft:oil" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/item/amulet.json b/src/generated/resources/data/anvilcraft/tags/item/amulet.json index 606eb6630d..a72c65bd22 100644 --- a/src/generated/resources/data/anvilcraft/tags/item/amulet.json +++ b/src/generated/resources/data/anvilcraft/tags/item/amulet.json @@ -12,10 +12,6 @@ "anvilcraft:silence_amulet", "anvilcraft:abnormal_amulet", "anvilcraft:gem_amulet", - "anvilcraft:nature_amulet", - { - "id": "anvilcraft:cogwheel_amulet", - "required": false - } + "anvilcraft:nature_amulet" ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/item/disallow_hand_insert_into_tank.json b/src/generated/resources/data/anvilcraft/tags/item/disallow_hand_insert_into_tank.json new file mode 100644 index 0000000000..460afe4fe4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/tags/item/disallow_hand_insert_into_tank.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#anvilcraft:tools/anvil_hammer" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json b/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json index 58eb16642e..d26a673ac7 100644 --- a/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json +++ b/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json @@ -1,68 +1,68 @@ { "values": [ - "anvilcraft:reinforced_concrete_white", - "anvilcraft:reinforced_concrete_light_gray", - "anvilcraft:reinforced_concrete_gray", - "anvilcraft:reinforced_concrete_black", - "anvilcraft:reinforced_concrete_brown", - "anvilcraft:reinforced_concrete_red", - "anvilcraft:reinforced_concrete_orange", - "anvilcraft:reinforced_concrete_yellow", - "anvilcraft:reinforced_concrete_lime", - "anvilcraft:reinforced_concrete_green", - "anvilcraft:reinforced_concrete_cyan", - "anvilcraft:reinforced_concrete_light_blue", - "anvilcraft:reinforced_concrete_blue", - "anvilcraft:reinforced_concrete_purple", - "anvilcraft:reinforced_concrete_magenta", - "anvilcraft:reinforced_concrete_pink", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_pink_slab", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_pink_stair", - "anvilcraft:reinforced_concrete_white_wall", - "anvilcraft:reinforced_concrete_light_gray_wall", - "anvilcraft:reinforced_concrete_gray_wall", - "anvilcraft:reinforced_concrete_black_wall", - "anvilcraft:reinforced_concrete_brown_wall", - "anvilcraft:reinforced_concrete_red_wall", - "anvilcraft:reinforced_concrete_orange_wall", - "anvilcraft:reinforced_concrete_yellow_wall", - "anvilcraft:reinforced_concrete_lime_wall", - "anvilcraft:reinforced_concrete_green_wall", - "anvilcraft:reinforced_concrete_cyan_wall", - "anvilcraft:reinforced_concrete_light_blue_wall", - "anvilcraft:reinforced_concrete_blue_wall", - "anvilcraft:reinforced_concrete_purple_wall", - "anvilcraft:reinforced_concrete_magenta_wall", - "anvilcraft:reinforced_concrete_pink_wall" + "anvilcraft:white_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_stair", + "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/item/templates.json b/src/generated/resources/data/anvilcraft/tags/item/templates.json index 8a5d0c7d4b..e9dc541d94 100644 --- a/src/generated/resources/data/anvilcraft/tags/item/templates.json +++ b/src/generated/resources/data/anvilcraft/tags/item/templates.json @@ -6,8 +6,25 @@ "anvilcraft:transcendium_upgrade_smithing_template", "anvilcraft:permutation_smithing_template", "anvilcraft:deformation_smithing_template", - "#minecraft:trim_templates", "#anvilcraft:multiple_to_one_smithing_templates", - "minecraft:netherite_upgrade_smithing_template" + "minecraft:netherite_upgrade_smithing_template", + "minecraft:bolt_armor_trim_smithing_template", + "minecraft:coast_armor_trim_smithing_template", + "minecraft:dune_armor_trim_smithing_template", + "minecraft:eye_armor_trim_smithing_template", + "minecraft:flow_armor_trim_smithing_template", + "minecraft:host_armor_trim_smithing_template", + "minecraft:raiser_armor_trim_smithing_template", + "minecraft:rib_armor_trim_smithing_template", + "minecraft:sentry_armor_trim_smithing_template", + "minecraft:shaper_armor_trim_smithing_template", + "minecraft:silence_armor_trim_smithing_template", + "minecraft:snout_armor_trim_smithing_template", + "minecraft:spire_armor_trim_smithing_template", + "minecraft:tide_armor_trim_smithing_template", + "minecraft:vex_armor_trim_smithing_template", + "minecraft:ward_armor_trim_smithing_template", + "minecraft:wayfinder_armor_trim_smithing_template", + "minecraft:wild_armor_trim_smithing_template" ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_1.json b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_1.json new file mode 100644 index 0000000000..1df84e406e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_1.json @@ -0,0 +1,8 @@ +{ + "amount": 2.0, + "random_sequence": "anvilcraft:trade_set/jeweler/level_1", + "trades": [ + "anvilcraft:jeweler/amethyst_shard_for_emerald", + "anvilcraft:jeweler/emerald_for_tinted_glass" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_2.json b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_2.json new file mode 100644 index 0000000000..f96cf34a63 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_2.json @@ -0,0 +1,8 @@ +{ + "amount": 2.0, + "random_sequence": "anvilcraft:trade_set/jeweler/level_2", + "trades": [ + "anvilcraft:jeweler/sea_lantern_for_emerald", + "anvilcraft:jeweler/amber_for_emerald" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_3.json b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_3.json new file mode 100644 index 0000000000..447fa556c0 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_3.json @@ -0,0 +1,10 @@ +{ + "amount": 2.0, + "random_sequence": "anvilcraft:trade_set/jeweler/level_3", + "trades": [ + "anvilcraft:jeweler/topaz_block_for_emerald", + "anvilcraft:jeweler/sapphire_block_for_emerald", + "anvilcraft:jeweler/ruby_block_for_emerald", + "anvilcraft:jeweler/emerald_for_royal_steel_template" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_4.json b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_4.json new file mode 100644 index 0000000000..b8a9e9aa97 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_4.json @@ -0,0 +1,9 @@ +{ + "amount": 2.0, + "random_sequence": "anvilcraft:trade_set/jeweler/level_4", + "trades": [ + "anvilcraft:jeweler/nautilus_shell_for_emerald", + "anvilcraft:jeweler/mob_amber_for_emerald", + "anvilcraft:jeweler/resentful_amber_for_emerald" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_5.json b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_5.json new file mode 100644 index 0000000000..2a9d05806d --- /dev/null +++ b/src/generated/resources/data/anvilcraft/trade_set/jeweler/level_5.json @@ -0,0 +1,8 @@ +{ + "amount": 2.0, + "random_sequence": "anvilcraft:trade_set/jeweler/level_5", + "trades": [ + "anvilcraft:jeweler/emerald_for_geode", + "anvilcraft:jeweler/emerald_for_amulet_box" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/amber_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/amber_for_emerald.json new file mode 100644 index 0000000000..11d28714c9 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/amber_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "id": "minecraft:emerald" + }, + "max_uses": 16.0, + "reputation_discount": 0.05, + "wants": { + "count": 4.0, + "id": "anvilcraft:amber" + }, + "xp": 5.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/amethyst_shard_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/amethyst_shard_for_emerald.json new file mode 100644 index 0000000000..9567b79717 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/amethyst_shard_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "id": "minecraft:emerald" + }, + "max_uses": 16.0, + "reputation_discount": 0.05, + "wants": { + "count": 4.0, + "id": "minecraft:amethyst_shard" + }, + "xp": 2.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_amulet_box.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_amulet_box.json new file mode 100644 index 0000000000..046364c3f4 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_amulet_box.json @@ -0,0 +1,15 @@ +{ + "additional_wants": { + "id": "minecraft:totem_of_undying" + }, + "gives": { + "id": "anvilcraft:amulet_box" + }, + "max_uses": 1.0, + "reputation_discount": 0.05, + "wants": { + "count": 64.0, + "id": "minecraft:emerald" + }, + "xp": 30.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_geode.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_geode.json new file mode 100644 index 0000000000..dc26339c8e --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_geode.json @@ -0,0 +1,15 @@ +{ + "additional_wants": { + "count": 32.0, + "id": "minecraft:smooth_basalt" + }, + "gives": { + "id": "anvilcraft:geode" + }, + "reputation_discount": 0.05, + "wants": { + "count": 64.0, + "id": "minecraft:emerald" + }, + "xp": 30.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_royal_steel_template.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_royal_steel_template.json new file mode 100644 index 0000000000..4e91101b9c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_royal_steel_template.json @@ -0,0 +1,16 @@ +{ + "additional_wants": { + "count": 4.0, + "id": "anvilcraft:royal_steel_ingot" + }, + "gives": { + "id": "anvilcraft:royal_steel_upgrade_smithing_template" + }, + "max_uses": 2.0, + "reputation_discount": 0.05, + "wants": { + "count": 40.0, + "id": "minecraft:emerald" + }, + "xp": 10.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_tinted_glass.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_tinted_glass.json new file mode 100644 index 0000000000..8a6910976c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/emerald_for_tinted_glass.json @@ -0,0 +1,11 @@ +{ + "gives": { + "id": "minecraft:tinted_glass" + }, + "max_uses": 12.0, + "reputation_discount": 0.05, + "wants": { + "id": "minecraft:emerald" + }, + "xp": 4.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/mob_amber_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/mob_amber_for_emerald.json new file mode 100644 index 0000000000..78cc2feca1 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/mob_amber_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "count": 8, + "id": "minecraft:emerald" + }, + "max_uses": 2.0, + "reputation_discount": 0.05, + "wants": { + "id": "anvilcraft:mob_amber_block" + }, + "xp": 10.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/nautilus_shell_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/nautilus_shell_for_emerald.json new file mode 100644 index 0000000000..a95fac0b14 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/nautilus_shell_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "count": 2, + "id": "minecraft:emerald" + }, + "max_uses": 12.0, + "reputation_discount": 0.05, + "wants": { + "id": "minecraft:nautilus_shell" + }, + "xp": 10.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/resentful_amber_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/resentful_amber_for_emerald.json new file mode 100644 index 0000000000..9da36e5b2c --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/resentful_amber_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "count": 24, + "id": "minecraft:emerald" + }, + "max_uses": 2.0, + "reputation_discount": 0.05, + "wants": { + "id": "anvilcraft:resentful_amber_block" + }, + "xp": 30.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/ruby_block_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/ruby_block_for_emerald.json new file mode 100644 index 0000000000..6b8e4a9d68 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/ruby_block_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "count": 8, + "id": "minecraft:emerald" + }, + "max_uses": 8.0, + "reputation_discount": 0.05, + "wants": { + "id": "anvilcraft:ruby_block" + }, + "xp": 10.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/sapphire_block_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/sapphire_block_for_emerald.json new file mode 100644 index 0000000000..3e31a9b2ca --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/sapphire_block_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "count": 8, + "id": "minecraft:emerald" + }, + "max_uses": 8.0, + "reputation_discount": 0.05, + "wants": { + "id": "anvilcraft:sapphire_block" + }, + "xp": 10.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/sea_lantern_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/sea_lantern_for_emerald.json new file mode 100644 index 0000000000..97ea56b099 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/sea_lantern_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "id": "minecraft:emerald" + }, + "max_uses": 12.0, + "reputation_discount": 0.05, + "wants": { + "count": 8.0, + "id": "minecraft:sea_lantern" + }, + "xp": 10.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/villager_trade/jeweler/topaz_block_for_emerald.json b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/topaz_block_for_emerald.json new file mode 100644 index 0000000000..75869be959 --- /dev/null +++ b/src/generated/resources/data/anvilcraft/villager_trade/jeweler/topaz_block_for_emerald.json @@ -0,0 +1,12 @@ +{ + "gives": { + "count": 8, + "id": "minecraft:emerald" + }, + "max_uses": 8.0, + "reputation_discount": 0.05, + "wants": { + "id": "anvilcraft:topaz_block" + }, + "xp": 10.0 +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed.json b/src/generated/resources/data/c/tags/block/dyed.json index 58eb16642e..d26a673ac7 100644 --- a/src/generated/resources/data/c/tags/block/dyed.json +++ b/src/generated/resources/data/c/tags/block/dyed.json @@ -1,68 +1,68 @@ { "values": [ - "anvilcraft:reinforced_concrete_white", - "anvilcraft:reinforced_concrete_light_gray", - "anvilcraft:reinforced_concrete_gray", - "anvilcraft:reinforced_concrete_black", - "anvilcraft:reinforced_concrete_brown", - "anvilcraft:reinforced_concrete_red", - "anvilcraft:reinforced_concrete_orange", - "anvilcraft:reinforced_concrete_yellow", - "anvilcraft:reinforced_concrete_lime", - "anvilcraft:reinforced_concrete_green", - "anvilcraft:reinforced_concrete_cyan", - "anvilcraft:reinforced_concrete_light_blue", - "anvilcraft:reinforced_concrete_blue", - "anvilcraft:reinforced_concrete_purple", - "anvilcraft:reinforced_concrete_magenta", - "anvilcraft:reinforced_concrete_pink", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_pink_slab", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_pink_stair", - "anvilcraft:reinforced_concrete_white_wall", - "anvilcraft:reinforced_concrete_light_gray_wall", - "anvilcraft:reinforced_concrete_gray_wall", - "anvilcraft:reinforced_concrete_black_wall", - "anvilcraft:reinforced_concrete_brown_wall", - "anvilcraft:reinforced_concrete_red_wall", - "anvilcraft:reinforced_concrete_orange_wall", - "anvilcraft:reinforced_concrete_yellow_wall", - "anvilcraft:reinforced_concrete_lime_wall", - "anvilcraft:reinforced_concrete_green_wall", - "anvilcraft:reinforced_concrete_cyan_wall", - "anvilcraft:reinforced_concrete_light_blue_wall", - "anvilcraft:reinforced_concrete_blue_wall", - "anvilcraft:reinforced_concrete_purple_wall", - "anvilcraft:reinforced_concrete_magenta_wall", - "anvilcraft:reinforced_concrete_pink_wall" + "anvilcraft:white_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_stair", + "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/black.json b/src/generated/resources/data/c/tags/block/dyed/black.json index 0e9ea39a5a..1c27d38387 100644 --- a/src/generated/resources/data/c/tags/block/dyed/black.json +++ b/src/generated/resources/data/c/tags/block/dyed/black.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_black", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_black_wall" + "anvilcraft:black_reinforced_concrete", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/blue.json b/src/generated/resources/data/c/tags/block/dyed/blue.json index 562460452a..2f7243434d 100644 --- a/src/generated/resources/data/c/tags/block/dyed/blue.json +++ b/src/generated/resources/data/c/tags/block/dyed/blue.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_blue", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_blue_wall" + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/brown.json b/src/generated/resources/data/c/tags/block/dyed/brown.json index cbddcd5cd2..39557991fd 100644 --- a/src/generated/resources/data/c/tags/block/dyed/brown.json +++ b/src/generated/resources/data/c/tags/block/dyed/brown.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_brown", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_brown_wall" + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/cyan.json b/src/generated/resources/data/c/tags/block/dyed/cyan.json index 17db2370cd..f5416aef64 100644 --- a/src/generated/resources/data/c/tags/block/dyed/cyan.json +++ b/src/generated/resources/data/c/tags/block/dyed/cyan.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_cyan", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_cyan_wall" + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/gray.json b/src/generated/resources/data/c/tags/block/dyed/gray.json index 0e34f21d36..97636feb3c 100644 --- a/src/generated/resources/data/c/tags/block/dyed/gray.json +++ b/src/generated/resources/data/c/tags/block/dyed/gray.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_gray", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_gray_wall" + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/green.json b/src/generated/resources/data/c/tags/block/dyed/green.json index 47ab958d5a..1c1995d55f 100644 --- a/src/generated/resources/data/c/tags/block/dyed/green.json +++ b/src/generated/resources/data/c/tags/block/dyed/green.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_green", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_green_wall" + "anvilcraft:green_reinforced_concrete", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/light_blue.json b/src/generated/resources/data/c/tags/block/dyed/light_blue.json index bb74a46a97..dd3439dbda 100644 --- a/src/generated/resources/data/c/tags/block/dyed/light_blue.json +++ b/src/generated/resources/data/c/tags/block/dyed/light_blue.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_light_blue", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_light_blue_wall" + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/light_gray.json b/src/generated/resources/data/c/tags/block/dyed/light_gray.json index bee8f52f2e..45c0bc2b41 100644 --- a/src/generated/resources/data/c/tags/block/dyed/light_gray.json +++ b/src/generated/resources/data/c/tags/block/dyed/light_gray.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_light_gray", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_light_gray_wall" + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/lime.json b/src/generated/resources/data/c/tags/block/dyed/lime.json index abd9d0463e..9839d3aedf 100644 --- a/src/generated/resources/data/c/tags/block/dyed/lime.json +++ b/src/generated/resources/data/c/tags/block/dyed/lime.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_lime", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_lime_wall" + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/magenta.json b/src/generated/resources/data/c/tags/block/dyed/magenta.json index 4d97d34087..b8940867d6 100644 --- a/src/generated/resources/data/c/tags/block/dyed/magenta.json +++ b/src/generated/resources/data/c/tags/block/dyed/magenta.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_magenta", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_magenta_wall" + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/orange.json b/src/generated/resources/data/c/tags/block/dyed/orange.json index b96757edb6..4044155138 100644 --- a/src/generated/resources/data/c/tags/block/dyed/orange.json +++ b/src/generated/resources/data/c/tags/block/dyed/orange.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_orange", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_orange_wall" + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/pink.json b/src/generated/resources/data/c/tags/block/dyed/pink.json index e76f3b1b70..34bd3ccb18 100644 --- a/src/generated/resources/data/c/tags/block/dyed/pink.json +++ b/src/generated/resources/data/c/tags/block/dyed/pink.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_pink", - "anvilcraft:reinforced_concrete_pink_slab", - "anvilcraft:reinforced_concrete_pink_stair", - "anvilcraft:reinforced_concrete_pink_wall" + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/purple.json b/src/generated/resources/data/c/tags/block/dyed/purple.json index e388476471..7e071322a3 100644 --- a/src/generated/resources/data/c/tags/block/dyed/purple.json +++ b/src/generated/resources/data/c/tags/block/dyed/purple.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_purple", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_purple_wall" + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/red.json b/src/generated/resources/data/c/tags/block/dyed/red.json index 11ee713aff..60de5d45f5 100644 --- a/src/generated/resources/data/c/tags/block/dyed/red.json +++ b/src/generated/resources/data/c/tags/block/dyed/red.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_red", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_red_wall" + "anvilcraft:red_reinforced_concrete", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/white.json b/src/generated/resources/data/c/tags/block/dyed/white.json index e57607762e..f7c6ed3c63 100644 --- a/src/generated/resources/data/c/tags/block/dyed/white.json +++ b/src/generated/resources/data/c/tags/block/dyed/white.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_white", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_white_wall" + "anvilcraft:white_reinforced_concrete", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:white_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/dyed/yellow.json b/src/generated/resources/data/c/tags/block/dyed/yellow.json index 28d0d7be0f..42bd10eeaa 100644 --- a/src/generated/resources/data/c/tags/block/dyed/yellow.json +++ b/src/generated/resources/data/c/tags/block/dyed/yellow.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_yellow", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_yellow_wall" + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/amethyst_tool_materials.json b/src/generated/resources/data/c/tags/item/amethyst_tool_materials.json new file mode 100644 index 0000000000..742ef896d5 --- /dev/null +++ b/src/generated/resources/data/c/tags/item/amethyst_tool_materials.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:amethyst_shard" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed.json b/src/generated/resources/data/c/tags/item/dyed.json index 58eb16642e..d26a673ac7 100644 --- a/src/generated/resources/data/c/tags/item/dyed.json +++ b/src/generated/resources/data/c/tags/item/dyed.json @@ -1,68 +1,68 @@ { "values": [ - "anvilcraft:reinforced_concrete_white", - "anvilcraft:reinforced_concrete_light_gray", - "anvilcraft:reinforced_concrete_gray", - "anvilcraft:reinforced_concrete_black", - "anvilcraft:reinforced_concrete_brown", - "anvilcraft:reinforced_concrete_red", - "anvilcraft:reinforced_concrete_orange", - "anvilcraft:reinforced_concrete_yellow", - "anvilcraft:reinforced_concrete_lime", - "anvilcraft:reinforced_concrete_green", - "anvilcraft:reinforced_concrete_cyan", - "anvilcraft:reinforced_concrete_light_blue", - "anvilcraft:reinforced_concrete_blue", - "anvilcraft:reinforced_concrete_purple", - "anvilcraft:reinforced_concrete_magenta", - "anvilcraft:reinforced_concrete_pink", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_pink_slab", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_pink_stair", - "anvilcraft:reinforced_concrete_white_wall", - "anvilcraft:reinforced_concrete_light_gray_wall", - "anvilcraft:reinforced_concrete_gray_wall", - "anvilcraft:reinforced_concrete_black_wall", - "anvilcraft:reinforced_concrete_brown_wall", - "anvilcraft:reinforced_concrete_red_wall", - "anvilcraft:reinforced_concrete_orange_wall", - "anvilcraft:reinforced_concrete_yellow_wall", - "anvilcraft:reinforced_concrete_lime_wall", - "anvilcraft:reinforced_concrete_green_wall", - "anvilcraft:reinforced_concrete_cyan_wall", - "anvilcraft:reinforced_concrete_light_blue_wall", - "anvilcraft:reinforced_concrete_blue_wall", - "anvilcraft:reinforced_concrete_purple_wall", - "anvilcraft:reinforced_concrete_magenta_wall", - "anvilcraft:reinforced_concrete_pink_wall" + "anvilcraft:white_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_stair", + "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/black.json b/src/generated/resources/data/c/tags/item/dyed/black.json index 0e9ea39a5a..1c27d38387 100644 --- a/src/generated/resources/data/c/tags/item/dyed/black.json +++ b/src/generated/resources/data/c/tags/item/dyed/black.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_black", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_black_wall" + "anvilcraft:black_reinforced_concrete", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/blue.json b/src/generated/resources/data/c/tags/item/dyed/blue.json index 562460452a..2f7243434d 100644 --- a/src/generated/resources/data/c/tags/item/dyed/blue.json +++ b/src/generated/resources/data/c/tags/item/dyed/blue.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_blue", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_blue_wall" + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/brown.json b/src/generated/resources/data/c/tags/item/dyed/brown.json index cbddcd5cd2..39557991fd 100644 --- a/src/generated/resources/data/c/tags/item/dyed/brown.json +++ b/src/generated/resources/data/c/tags/item/dyed/brown.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_brown", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_brown_wall" + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/cyan.json b/src/generated/resources/data/c/tags/item/dyed/cyan.json index 17db2370cd..f5416aef64 100644 --- a/src/generated/resources/data/c/tags/item/dyed/cyan.json +++ b/src/generated/resources/data/c/tags/item/dyed/cyan.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_cyan", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_cyan_wall" + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/gray.json b/src/generated/resources/data/c/tags/item/dyed/gray.json index 0e34f21d36..97636feb3c 100644 --- a/src/generated/resources/data/c/tags/item/dyed/gray.json +++ b/src/generated/resources/data/c/tags/item/dyed/gray.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_gray", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_gray_wall" + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/green.json b/src/generated/resources/data/c/tags/item/dyed/green.json index 47ab958d5a..1c1995d55f 100644 --- a/src/generated/resources/data/c/tags/item/dyed/green.json +++ b/src/generated/resources/data/c/tags/item/dyed/green.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_green", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_green_wall" + "anvilcraft:green_reinforced_concrete", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/light_blue.json b/src/generated/resources/data/c/tags/item/dyed/light_blue.json index bb74a46a97..dd3439dbda 100644 --- a/src/generated/resources/data/c/tags/item/dyed/light_blue.json +++ b/src/generated/resources/data/c/tags/item/dyed/light_blue.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_light_blue", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_light_blue_wall" + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/light_gray.json b/src/generated/resources/data/c/tags/item/dyed/light_gray.json index bee8f52f2e..45c0bc2b41 100644 --- a/src/generated/resources/data/c/tags/item/dyed/light_gray.json +++ b/src/generated/resources/data/c/tags/item/dyed/light_gray.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_light_gray", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_light_gray_wall" + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/lime.json b/src/generated/resources/data/c/tags/item/dyed/lime.json index abd9d0463e..9839d3aedf 100644 --- a/src/generated/resources/data/c/tags/item/dyed/lime.json +++ b/src/generated/resources/data/c/tags/item/dyed/lime.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_lime", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_lime_wall" + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/magenta.json b/src/generated/resources/data/c/tags/item/dyed/magenta.json index 4d97d34087..b8940867d6 100644 --- a/src/generated/resources/data/c/tags/item/dyed/magenta.json +++ b/src/generated/resources/data/c/tags/item/dyed/magenta.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_magenta", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_magenta_wall" + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/orange.json b/src/generated/resources/data/c/tags/item/dyed/orange.json index b96757edb6..4044155138 100644 --- a/src/generated/resources/data/c/tags/item/dyed/orange.json +++ b/src/generated/resources/data/c/tags/item/dyed/orange.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_orange", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_orange_wall" + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/pink.json b/src/generated/resources/data/c/tags/item/dyed/pink.json index e76f3b1b70..34bd3ccb18 100644 --- a/src/generated/resources/data/c/tags/item/dyed/pink.json +++ b/src/generated/resources/data/c/tags/item/dyed/pink.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_pink", - "anvilcraft:reinforced_concrete_pink_slab", - "anvilcraft:reinforced_concrete_pink_stair", - "anvilcraft:reinforced_concrete_pink_wall" + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/purple.json b/src/generated/resources/data/c/tags/item/dyed/purple.json index e388476471..7e071322a3 100644 --- a/src/generated/resources/data/c/tags/item/dyed/purple.json +++ b/src/generated/resources/data/c/tags/item/dyed/purple.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_purple", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_purple_wall" + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/red.json b/src/generated/resources/data/c/tags/item/dyed/red.json index 11ee713aff..60de5d45f5 100644 --- a/src/generated/resources/data/c/tags/item/dyed/red.json +++ b/src/generated/resources/data/c/tags/item/dyed/red.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_red", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_red_wall" + "anvilcraft:red_reinforced_concrete", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/white.json b/src/generated/resources/data/c/tags/item/dyed/white.json index e57607762e..f7c6ed3c63 100644 --- a/src/generated/resources/data/c/tags/item/dyed/white.json +++ b/src/generated/resources/data/c/tags/item/dyed/white.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_white", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_white_wall" + "anvilcraft:white_reinforced_concrete", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:white_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/dyed/yellow.json b/src/generated/resources/data/c/tags/item/dyed/yellow.json index 28d0d7be0f..42bd10eeaa 100644 --- a/src/generated/resources/data/c/tags/item/dyed/yellow.json +++ b/src/generated/resources/data/c/tags/item/dyed/yellow.json @@ -1,8 +1,8 @@ { "values": [ - "anvilcraft:reinforced_concrete_yellow", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_yellow_wall" + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/ember_metal_tool_materials.json b/src/generated/resources/data/c/tags/item/ember_metal_tool_materials.json new file mode 100644 index 0000000000..fe33d3fb90 --- /dev/null +++ b/src/generated/resources/data/c/tags/item/ember_metal_tool_materials.json @@ -0,0 +1,5 @@ +{ + "values": [ + "anvilcraft:ember_metal_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/foods.json b/src/generated/resources/data/c/tags/item/foods.json index 6a3faecfd7..8b831f72ac 100644 --- a/src/generated/resources/data/c/tags/item/foods.json +++ b/src/generated/resources/data/c/tags/item/foods.json @@ -8,9 +8,6 @@ "anvilcraft:berry_cake_block", "anvilcraft:chocolate_cake_block", "anvilcraft:large_cake", - "anvilcraft:cream", - "anvilcraft:flour", - "anvilcraft:dough", "anvilcraft:chocolate", "anvilcraft:chocolate_black", "anvilcraft:chocolate_white", diff --git a/src/generated/resources/data/c/tags/item/frost_metal_tool_materials.json b/src/generated/resources/data/c/tags/item/frost_metal_tool_materials.json new file mode 100644 index 0000000000..f07c8b1905 --- /dev/null +++ b/src/generated/resources/data/c/tags/item/frost_metal_tool_materials.json @@ -0,0 +1,5 @@ +{ + "values": [ + "anvilcraft:frost_metal_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/ingots/magnet.json b/src/generated/resources/data/c/tags/item/ingots/magnet.json index 01ab546a5a..dfbe531401 100644 --- a/src/generated/resources/data/c/tags/item/ingots/magnet.json +++ b/src/generated/resources/data/c/tags/item/ingots/magnet.json @@ -1,5 +1,6 @@ { "values": [ + "anvilcraft:magnet", "anvilcraft:magnet_ingot" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/royal_steel_tool_materials.json b/src/generated/resources/data/c/tags/item/royal_steel_tool_materials.json new file mode 100644 index 0000000000..7aa2846ad0 --- /dev/null +++ b/src/generated/resources/data/c/tags/item/royal_steel_tool_materials.json @@ -0,0 +1,5 @@ +{ + "values": [ + "anvilcraft:royal_steel_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/transcendium_tool_materials.json b/src/generated/resources/data/c/tags/item/transcendium_tool_materials.json new file mode 100644 index 0000000000..2f64f27ebd --- /dev/null +++ b/src/generated/resources/data/c/tags/item/transcendium_tool_materials.json @@ -0,0 +1,5 @@ +{ + "values": [ + "anvilcraft:transcendium_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/misc/netherrack.json b/src/generated/resources/data/minecraft/advancement/recipes/misc/netherrack.json deleted file mode 100644 index a7c8997670..0000000000 --- a/src/generated/resources/data/minecraft/advancement/recipes/misc/netherrack.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "minecraft:netherrack" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "hasitem": { - "conditions": { - "items": [ - { - "items": "anvilcraft:rotten_flesh_block" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "hasitem" - ] - ], - "rewards": { - "recipes": [ - "minecraft:netherrack" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/null/uranium_block_explosion.json b/src/generated/resources/data/minecraft/advancement/recipes/null/uranium_block_explosion.json deleted file mode 100644 index b060c3c4c0..0000000000 --- a/src/generated/resources/data/minecraft/advancement/recipes/null/uranium_block_explosion.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "minecraft:uranium_block_explosion" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "minecraft:uranium_block_explosion" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/advancement/recipes/redstone/empty_propel_piston.json b/src/generated/resources/data/minecraft/advancement/recipes/redstone/empty_propel_piston.json deleted file mode 100644 index a06d8a07f4..0000000000 --- a/src/generated/resources/data/minecraft/advancement/recipes/redstone/empty_propel_piston.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_item": { - "conditions": { - "items": [ - { - "items": "anvilcraft:ruby" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "minecraft:empty_propel_piston" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_item" - ] - ], - "rewards": { - "recipes": [ - "minecraft:empty_propel_piston" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/empty_propel_piston.json b/src/generated/resources/data/minecraft/recipe/empty_propel_piston.json deleted file mode 100644 index 5830c299ec..0000000000 --- a/src/generated/resources/data/minecraft/recipe/empty_propel_piston.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "category": "redstone", - "key": { - "A": { - "item": "anvilcraft:ionocraft" - }, - "B": { - "item": "anvilcraft:capacitor_empty" - }, - "C": { - "item": "minecraft:iron_ingot" - }, - "D": { - "item": "minecraft:piston" - }, - "E": { - "item": "anvilcraft:ruby" - } - }, - "pattern": [ - "CDC", - "ABA", - "AEA" - ], - "result": { - "count": 1, - "id": "anvilcraft:propel_piston" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/netherrack.json b/src/generated/resources/data/minecraft/recipe/netherrack.json deleted file mode 100644 index c4efa18a93..0000000000 --- a/src/generated/resources/data/minecraft/recipe/netherrack.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "minecraft:smelting", - "category": "blocks", - "cookingtime": 200, - "experience": 0.0, - "ingredient": { - "item": "anvilcraft:rotten_flesh_block" - }, - "result": { - "count": 1, - "id": "minecraft:netherrack" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/recipe/null/uranium_block_explosion.json b/src/generated/resources/data/minecraft/recipe/null/uranium_block_explosion.json deleted file mode 100644 index 2b0ca294d4..0000000000 --- a/src/generated/resources/data/minecraft/recipe/null/uranium_block_explosion.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "type": "anvillib_recipe:in_world_recipe", - "compatible": true, - "conflicting": [ - { - "type": "anvillib_recipe:has_item_ingredient", - "item": { - "items": "anvilcraft:uranium_block" - }, - "offset": [ - 0.0, - -0.375, - 0.0 - ], - "range": [ - 0.75, - 0.75, - 0.75 - ] - } - ], - "icon": { - "count": 1, - "id": "minecraft:anvil" - }, - "non_conflicting": [ - { - "type": "anvilcraft:has_cauldron", - "offset": [ - 0.0, - -1.0, - 0.0 - ] - }, - { - "type": "anvillib_recipe:has_block", - "offset": [ - 0.0, - -2.0, - 0.0 - ], - "predicate": { - "blocks": "anvilcraft:neutron_irradiator" - } - } - ], - "outcomes": [ - { - "type": "anvillib_recipe:choose_one", - "choices": [ - { - "outcome": { - "type": "anvillib_recipe:produce_explosion", - "fire": false, - "interact": "block", - "offset": [ - 0.0, - -0.75, - 0.0 - ], - "power": 3.0 - }, - "weight": 1.0 - } - ] - } - ], - "priority": 5, - "trigger": "anvilcraft:on_anvil_fall_on" -} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/cauldrons.json b/src/generated/resources/data/minecraft/tags/block/cauldrons.json index a0cdf67658..b6dab80660 100644 --- a/src/generated/resources/data/minecraft/tags/block/cauldrons.json +++ b/src/generated/resources/data/minecraft/tags/block/cauldrons.json @@ -7,7 +7,6 @@ "anvilcraft:obsidian_cauldron", "anvilcraft:exp_fluid_cauldron", "anvilcraft:oil_cauldron", - "anvilcraft:fire_cauldron", "anvilcraft:white_cement_cauldron", "anvilcraft:light_gray_cement_cauldron", "anvilcraft:gray_cement_cauldron", diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index 0a2552c115..1854f49ab0 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -128,70 +128,70 @@ "anvilcraft:chocolate_stairs", "anvilcraft:black_chocolate_stairs", "anvilcraft:white_chocolate_stairs", - "anvilcraft:reinforced_concrete_white", - "anvilcraft:reinforced_concrete_light_gray", - "anvilcraft:reinforced_concrete_gray", - "anvilcraft:reinforced_concrete_black", - "anvilcraft:reinforced_concrete_brown", - "anvilcraft:reinforced_concrete_red", - "anvilcraft:reinforced_concrete_orange", - "anvilcraft:reinforced_concrete_yellow", - "anvilcraft:reinforced_concrete_lime", - "anvilcraft:reinforced_concrete_green", - "anvilcraft:reinforced_concrete_cyan", - "anvilcraft:reinforced_concrete_light_blue", - "anvilcraft:reinforced_concrete_blue", - "anvilcraft:reinforced_concrete_purple", - "anvilcraft:reinforced_concrete_magenta", - "anvilcraft:reinforced_concrete_pink", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_pink_slab", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_pink_stair", - "anvilcraft:reinforced_concrete_white_wall", - "anvilcraft:reinforced_concrete_light_gray_wall", - "anvilcraft:reinforced_concrete_gray_wall", - "anvilcraft:reinforced_concrete_black_wall", - "anvilcraft:reinforced_concrete_brown_wall", - "anvilcraft:reinforced_concrete_red_wall", - "anvilcraft:reinforced_concrete_orange_wall", - "anvilcraft:reinforced_concrete_yellow_wall", - "anvilcraft:reinforced_concrete_lime_wall", - "anvilcraft:reinforced_concrete_green_wall", - "anvilcraft:reinforced_concrete_cyan_wall", - "anvilcraft:reinforced_concrete_light_blue_wall", - "anvilcraft:reinforced_concrete_blue_wall", - "anvilcraft:reinforced_concrete_purple_wall", - "anvilcraft:reinforced_concrete_magenta_wall", - "anvilcraft:reinforced_concrete_pink_wall", + "anvilcraft:white_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_stair", + "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete_wall", "anvilcraft:heated_netherite_block", "anvilcraft:heated_tungsten_block", "anvilcraft:redhot_netherite_block", @@ -227,7 +227,6 @@ "anvilcraft:obsidian_cauldron", "anvilcraft:exp_fluid_cauldron", "anvilcraft:oil_cauldron", - "anvilcraft:fire_cauldron", "anvilcraft:white_cement_cauldron", "anvilcraft:light_gray_cement_cauldron", "anvilcraft:gray_cement_cauldron", diff --git a/src/generated/resources/data/minecraft/tags/block/slabs.json b/src/generated/resources/data/minecraft/tags/block/slabs.json index e9afb8befb..f2cd0aa189 100644 --- a/src/generated/resources/data/minecraft/tags/block/slabs.json +++ b/src/generated/resources/data/minecraft/tags/block/slabs.json @@ -8,22 +8,22 @@ "anvilcraft:chocolate_slab", "anvilcraft:black_chocolate_slab", "anvilcraft:white_chocolate_slab", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_pink_slab", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_slab", "anvilcraft:cut_flint_slab" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/stairs.json b/src/generated/resources/data/minecraft/tags/block/stairs.json index 4f1135ef96..8035856ddb 100644 --- a/src/generated/resources/data/minecraft/tags/block/stairs.json +++ b/src/generated/resources/data/minecraft/tags/block/stairs.json @@ -8,22 +8,22 @@ "anvilcraft:chocolate_stairs", "anvilcraft:black_chocolate_stairs", "anvilcraft:white_chocolate_stairs", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_pink_stair", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:cut_flint_stairs" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/walls.json b/src/generated/resources/data/minecraft/tags/block/walls.json index 40bce11ce7..acb5eb2ee8 100644 --- a/src/generated/resources/data/minecraft/tags/block/walls.json +++ b/src/generated/resources/data/minecraft/tags/block/walls.json @@ -1,21 +1,21 @@ { "values": [ "anvilcraft:heavy_iron_wall", - "anvilcraft:reinforced_concrete_white_wall", - "anvilcraft:reinforced_concrete_light_gray_wall", - "anvilcraft:reinforced_concrete_gray_wall", - "anvilcraft:reinforced_concrete_black_wall", - "anvilcraft:reinforced_concrete_brown_wall", - "anvilcraft:reinforced_concrete_red_wall", - "anvilcraft:reinforced_concrete_orange_wall", - "anvilcraft:reinforced_concrete_yellow_wall", - "anvilcraft:reinforced_concrete_lime_wall", - "anvilcraft:reinforced_concrete_green_wall", - "anvilcraft:reinforced_concrete_cyan_wall", - "anvilcraft:reinforced_concrete_light_blue_wall", - "anvilcraft:reinforced_concrete_blue_wall", - "anvilcraft:reinforced_concrete_purple_wall", - "anvilcraft:reinforced_concrete_magenta_wall", - "anvilcraft:reinforced_concrete_pink_wall" + "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/enchantable/sword.json b/src/generated/resources/data/minecraft/tags/item/enchantable/sweeping.json similarity index 100% rename from src/generated/resources/data/minecraft/tags/item/enchantable/sword.json rename to src/generated/resources/data/minecraft/tags/item/enchantable/sweeping.json diff --git a/src/generated/resources/data/minecraft/tags/item/slabs.json b/src/generated/resources/data/minecraft/tags/item/slabs.json index e9afb8befb..f2cd0aa189 100644 --- a/src/generated/resources/data/minecraft/tags/item/slabs.json +++ b/src/generated/resources/data/minecraft/tags/item/slabs.json @@ -8,22 +8,22 @@ "anvilcraft:chocolate_slab", "anvilcraft:black_chocolate_slab", "anvilcraft:white_chocolate_slab", - "anvilcraft:reinforced_concrete_white_slab", - "anvilcraft:reinforced_concrete_light_gray_slab", - "anvilcraft:reinforced_concrete_gray_slab", - "anvilcraft:reinforced_concrete_black_slab", - "anvilcraft:reinforced_concrete_brown_slab", - "anvilcraft:reinforced_concrete_red_slab", - "anvilcraft:reinforced_concrete_orange_slab", - "anvilcraft:reinforced_concrete_yellow_slab", - "anvilcraft:reinforced_concrete_lime_slab", - "anvilcraft:reinforced_concrete_green_slab", - "anvilcraft:reinforced_concrete_cyan_slab", - "anvilcraft:reinforced_concrete_light_blue_slab", - "anvilcraft:reinforced_concrete_blue_slab", - "anvilcraft:reinforced_concrete_purple_slab", - "anvilcraft:reinforced_concrete_magenta_slab", - "anvilcraft:reinforced_concrete_pink_slab", + "anvilcraft:white_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_slab", "anvilcraft:cut_flint_slab" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/stairs.json b/src/generated/resources/data/minecraft/tags/item/stairs.json index 4f1135ef96..8035856ddb 100644 --- a/src/generated/resources/data/minecraft/tags/item/stairs.json +++ b/src/generated/resources/data/minecraft/tags/item/stairs.json @@ -8,22 +8,22 @@ "anvilcraft:chocolate_stairs", "anvilcraft:black_chocolate_stairs", "anvilcraft:white_chocolate_stairs", - "anvilcraft:reinforced_concrete_white_stair", - "anvilcraft:reinforced_concrete_light_gray_stair", - "anvilcraft:reinforced_concrete_gray_stair", - "anvilcraft:reinforced_concrete_black_stair", - "anvilcraft:reinforced_concrete_brown_stair", - "anvilcraft:reinforced_concrete_red_stair", - "anvilcraft:reinforced_concrete_orange_stair", - "anvilcraft:reinforced_concrete_yellow_stair", - "anvilcraft:reinforced_concrete_lime_stair", - "anvilcraft:reinforced_concrete_green_stair", - "anvilcraft:reinforced_concrete_cyan_stair", - "anvilcraft:reinforced_concrete_light_blue_stair", - "anvilcraft:reinforced_concrete_blue_stair", - "anvilcraft:reinforced_concrete_purple_stair", - "anvilcraft:reinforced_concrete_magenta_stair", - "anvilcraft:reinforced_concrete_pink_stair", + "anvilcraft:white_reinforced_concrete_stair", + "anvilcraft:light_gray_reinforced_concrete_stair", + "anvilcraft:gray_reinforced_concrete_stair", + "anvilcraft:black_reinforced_concrete_stair", + "anvilcraft:brown_reinforced_concrete_stair", + "anvilcraft:red_reinforced_concrete_stair", + "anvilcraft:orange_reinforced_concrete_stair", + "anvilcraft:yellow_reinforced_concrete_stair", + "anvilcraft:lime_reinforced_concrete_stair", + "anvilcraft:green_reinforced_concrete_stair", + "anvilcraft:cyan_reinforced_concrete_stair", + "anvilcraft:light_blue_reinforced_concrete_stair", + "anvilcraft:blue_reinforced_concrete_stair", + "anvilcraft:purple_reinforced_concrete_stair", + "anvilcraft:magenta_reinforced_concrete_stair", + "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:cut_flint_stairs" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/walls.json b/src/generated/resources/data/minecraft/tags/item/walls.json index 40bce11ce7..acb5eb2ee8 100644 --- a/src/generated/resources/data/minecraft/tags/item/walls.json +++ b/src/generated/resources/data/minecraft/tags/item/walls.json @@ -1,21 +1,21 @@ { "values": [ "anvilcraft:heavy_iron_wall", - "anvilcraft:reinforced_concrete_white_wall", - "anvilcraft:reinforced_concrete_light_gray_wall", - "anvilcraft:reinforced_concrete_gray_wall", - "anvilcraft:reinforced_concrete_black_wall", - "anvilcraft:reinforced_concrete_brown_wall", - "anvilcraft:reinforced_concrete_red_wall", - "anvilcraft:reinforced_concrete_orange_wall", - "anvilcraft:reinforced_concrete_yellow_wall", - "anvilcraft:reinforced_concrete_lime_wall", - "anvilcraft:reinforced_concrete_green_wall", - "anvilcraft:reinforced_concrete_cyan_wall", - "anvilcraft:reinforced_concrete_light_blue_wall", - "anvilcraft:reinforced_concrete_blue_wall", - "anvilcraft:reinforced_concrete_purple_wall", - "anvilcraft:reinforced_concrete_magenta_wall", - "anvilcraft:reinforced_concrete_pink_wall" + "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json b/src/generated/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json index 76ce7d44c1..911b90ccc4 100644 --- a/src/generated/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json +++ b/src/generated/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json @@ -1,8 +1,5 @@ { "values": [ - { - "id": "anvilcraft:jeweler_poi", - "required": false - } + "anvilcraft:jeweler_poi" ] } \ No newline at end of file diff --git a/src/generated/resources/data/neoforge/data_maps/item/furnace_fuels.json b/src/generated/resources/data/neoforge/data_maps/item/furnace_fuels.json deleted file mode 100644 index 047028a784..0000000000 --- a/src/generated/resources/data/neoforge/data_maps/item/furnace_fuels.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "values": { - "anvilcraft:wood_fiber": { - "burn_time": 300 - } - } -} \ 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 ad13f2e2b2..0000000000 --- a/src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "entries": [ - "anvilcraft:smelting_loot_modifier", - "anvilcraft:disintegration_loot_modifier" - ], - "replace": false -} \ No newline at end of file diff --git a/src/main/java/dev/dubhe/anvilcraft/AnvilCraft.java b/src/main/java/dev/dubhe/anvilcraft/AnvilCraft.java index 520c740ad6..5c81dd28b3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/AnvilCraft.java +++ b/src/main/java/dev/dubhe/anvilcraft/AnvilCraft.java @@ -8,7 +8,7 @@ import dev.anvilcraft.lib.v2.network.register.NetworkRegistrar; import dev.anvilcraft.lib.v2.registrum.Registrum; import dev.anvilcraft.lib.v2.util.Util; -import dev.dubhe.anvilcraft.api.taslatower.TeslaFilter; +import dev.dubhe.anvilcraft.api.teslatower.TeslaFilter; import dev.dubhe.anvilcraft.api.tooltip.ItemTooltipManager; import dev.dubhe.anvilcraft.config.AnvilCraftClientConfig; import dev.dubhe.anvilcraft.config.AnvilCraftServerConfig; @@ -33,30 +33,27 @@ import dev.dubhe.anvilcraft.init.entity.ModVillagers; import dev.dubhe.anvilcraft.init.item.ModAmuletTypes; import dev.dubhe.anvilcraft.init.item.ModComponents; +import dev.dubhe.anvilcraft.init.item.ModConsumeEffects; import dev.dubhe.anvilcraft.init.item.ModCustomDataComponents; +import dev.dubhe.anvilcraft.init.item.ModDataComponentPredicates; import dev.dubhe.anvilcraft.init.item.ModItemGroups; -import dev.dubhe.anvilcraft.init.item.ModItemSubPredicates; import dev.dubhe.anvilcraft.init.item.ModItems; import dev.dubhe.anvilcraft.init.loot.ModLootContextParamSets; -import dev.dubhe.anvilcraft.init.loot.ModLootItemConditions; import dev.dubhe.anvilcraft.init.loot.ModLootItemFunctions; import dev.dubhe.anvilcraft.init.loot.ModLootModifiers; import dev.dubhe.anvilcraft.init.recipe.ModRecipeInits; +import dev.dubhe.anvilcraft.init.recipe.ModRecipeSerializers; import dev.dubhe.anvilcraft.init.recipe.ModRecipeTypes; import dev.dubhe.anvilcraft.init.recipe.ModResultModifierTypes; -import dev.dubhe.anvilcraft.recipe.anvil.cache.RecipeCaches; -import dev.dubhe.anvilcraft.util.ModInteractionMap; +import dev.dubhe.anvilcraft.init.recipe.ModSlotDisplays; import lombok.Getter; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Unit; -import net.minecraft.world.item.crafting.RecipeManager; +import net.minecraft.resources.Identifier; import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.Mod; import net.neoforged.fml.event.lifecycle.FMLLoadCompleteEvent; import net.neoforged.fml.loading.progress.StartupNotificationManager; import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.neoforge.event.AddReloadListenerEvent; import net.neoforged.neoforge.event.RegisterCommandsEvent; import net.neoforged.neoforge.event.entity.player.ItemTooltipEvent; import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; @@ -91,23 +88,25 @@ public AnvilCraft(IEventBus modEventBus, ModContainer modContainer) { ModMenuTypes.register(); ModComponents.register(modEventBus); ModVillagers.register(modEventBus); + ModRecipeSerializers.register(modEventBus); ModRecipeTypes.register(modEventBus); ModDataAttachments.register(modEventBus); ModParticles.register(modEventBus); ModMobEffects.register(modEventBus); ModInspections.initialize(); - ModItemSubPredicates.initialize(modEventBus); + ModDataComponentPredicates.initialize(modEventBus); ModUuidProviders.register(modEventBus); ModCriterionTriggers.register(modEventBus); ModLootContextParamSets.registerAll(); ModEnchantmentEffectComponents.register(modEventBus); ModEnchantmentEffects.register(modEventBus); - ModLootItemFunctions.LOOT_FUNCTION_TYPES.register(modEventBus); - ModLootItemConditions.LOOT_CONDITION_TYPES.register(modEventBus); + ModLootItemFunctions.register(modEventBus); ModLootModifiers.register(modEventBus); TeslaFilter.init(); ModAmuletTypes.register(modEventBus); + ModConsumeEffects.register(modEventBus); + // datagen AnvilCraftDatagen.init(); @@ -123,6 +122,7 @@ public AnvilCraft(IEventBus modEventBus, ModContainer modContainer) { LOGGER.info("let's 0721"); ModRecipeInits.init(modEventBus); + ModSlotDisplays.register(modEventBus); ModResultModifierTypes.register(modEventBus); ModCustomDataComponents.register(modEventBus); @@ -130,22 +130,26 @@ public AnvilCraft(IEventBus modEventBus, ModContainer modContainer) { private static void registerEvents(IEventBus eventBus) { NeoForge.EVENT_BUS.addListener(AnvilCraft::registerCommand); - NeoForge.EVENT_BUS.addListener(AnvilCraft::addReloadListeners); NeoForge.EVENT_BUS.addListener(AnvilCraft::addItemTooltips); eventBus.addListener(AnvilCraft::registerPayload); eventBus.addListener(AnvilCraft::loadComplete); eventBus.addListener(ModFluids::registerFluidInteractions); + eventBus.addListener(ModFluids::registerVanilla); } - public static ResourceLocation of(String path) { - return ResourceLocation.fromNamespaceAndPath(MOD_ID, path); + public static Identifier of(String path) { + return Identifier.fromNamespaceAndPath(MOD_ID, path); } - public static ResourceLocation advancementOf(String path) { + public static Identifier advancement(String path) { return of("anvilcraft/" + path); } + public static String recipe(String path) { + return MOD_ID + ':' + path; + } + public static void registerCommand(RegisterCommandsEvent event) { ModCommands.register(event.getDispatcher()); } @@ -156,26 +160,12 @@ public static void registerPayload(RegisterPayloadHandlersEvent event) { } public static void addItemTooltips(ItemTooltipEvent event) { - ItemTooltipManager.addTooltip(event.getItemStack(), event.getToolTip()); - } - - public static void addReloadListeners(AddReloadListenerEvent event) { - RecipeManager recipeManager = event.getServerResources().getRecipeManager(); - event.addListener(( - prepBarrier, - resourceManager, - prepProfiler, - reloadProfiler, - backgroundExecutor, - gameExecutor - ) -> prepBarrier.wait(Unit.INSTANCE) - .thenRunAsync(() -> RecipeCaches.reload(recipeManager), gameExecutor)); + ItemTooltipManager.addTooltip(event.getItemStack(), event.getToolTip(), event.getFlags()); } public static void loadComplete(FMLLoadCompleteEvent event) { event.enqueueWork(() -> { ModDispenserBehavior.register(); - ModInteractionMap.initInteractionMap(); if (Util.isLoaded("apothic_enchanting")) { LOGGER.info( "Apothic Enchanting found. Set royalAnvilBeyondMaxLevel, " diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerClickBlockTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerClickBlockTrigger.java index 4332679a1c..fd93ede6ce 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerClickBlockTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerClickBlockTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -18,14 +18,14 @@ public Codec codec() { } public void trigger(ServerPlayer player, String type) { - this.trigger(player, (instance) -> instance.matches(type)); + this.trigger(player, instance -> instance.matches(type)); } public record TriggerInstance( Optional player, Optional type ) implements SimpleCriterionTrigger.SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), Codec.STRING.optionalFieldOf("type").forGetter(TriggerInstance::type) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerHurtEntityTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerHurtEntityTrigger.java index be57801c0e..fc71190493 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerHurtEntityTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHammerHurtEntityTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -18,11 +18,11 @@ public Codec codec() { } public void trigger(ServerPlayer player, Float damage) { - this.trigger(player, (instance) -> instance.matches(damage)); + this.trigger(player, instance -> instance.matches(damage)); } public record TriggerInstance(Optional player, Optional damage) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), Codec.FLOAT.optionalFieldOf("damage").forGetter(TriggerInstance::damage) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHitPiezoelectricCrystalTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHitPiezoelectricCrystalTrigger.java index fee8765f37..22a26fdf4f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHitPiezoelectricCrystalTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilHitPiezoelectricCrystalTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilLootingTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilLootingTrigger.java index 804b25eb2f..02b646307e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilLootingTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilLootingTrigger.java @@ -4,9 +4,10 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; +import net.minecraft.core.HolderGetter; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -22,13 +23,13 @@ public Codec codec() { public void trigger(ServerPlayer player, Entity entity) { LootContext context = EntityPredicate.createContext(player, entity); - this.trigger(player, (instance) -> instance.matches(context)); + this.trigger(player, instance -> instance.matches(context)); } public record TriggerInstance( Optional player, Optional entity ) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(TriggerInstance::entity) ).apply(instance, TriggerInstance::new)); @@ -39,11 +40,11 @@ public static Criterion looting() { ); } - public static Criterion looting(EntityType entityType) { + public static Criterion looting(HolderGetter> lookup, EntityType entityType) { return ModCriterionTriggers.ANVIL_LOOTING.get().createCriterion( new TriggerInstance( Optional.empty(), - Optional.of(EntityPredicate.wrap(EntityPredicate.Builder.entity().of(entityType).build()))) + Optional.of(EntityPredicate.wrap(EntityPredicate.Builder.entity().of(lookup, entityType).build()))) ); } diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilOnGroundTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilOnGroundTrigger.java index 915e126052..fe2ca18910 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilOnGroundTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/AnvilOnGroundTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/BlockPredicate.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/BlockPredicate.java index 879886c8d9..6a5dd74073 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/BlockPredicate.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/BlockPredicate.java @@ -13,7 +13,7 @@ import java.util.function.Predicate; public record BlockPredicate(Optional> block) implements Predicate { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( RegistryCodecs.homogeneousList(Registries.BLOCK).optionalFieldOf("block").forGetter(BlockPredicate::block) ).apply(instance, BlockPredicate::new)); @@ -32,13 +32,14 @@ public static Builder block() { return new Builder(); } + @SuppressWarnings("deprecation") public Builder of(Block block) { - this.blocks = HolderSet.direct((b) -> b.defaultBlockState().getBlockHolder(), block); + this.blocks = HolderSet.direct(b -> b.defaultBlockState().getBlock().builtInRegistryHolder(), block); return this; } public Builder of(TagKey tag) { - this.blocks = BuiltInRegistries.BLOCK.getOrCreateTag(tag); + this.blocks = BuiltInRegistries.BLOCK.getOrThrow(tag); return this; } diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/ConvertBeaconTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/ConvertBeaconTrigger.java index 7c3baa9b1d..51d6554bdb 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/ConvertBeaconTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/ConvertBeaconTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DevourerDevourTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DevourerDevourTrigger.java index 74f0d9838c..6a71d68738 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DevourerDevourTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DevourerDevourTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.block.Block; @@ -19,11 +19,11 @@ public Codec codec() { } public void trigger(ServerPlayer player, Block block) { - this.trigger(player, (instance) -> instance.matches(block)); + this.trigger(player, instance -> instance.matches(block)); } public record TriggerInstance(Optional player, Optional block) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), BlockPredicate.CODEC.optionalFieldOf("block").forGetter(TriggerInstance::block) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DispenserRepairIronGolem.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DispenserRepairIronGolem.java index 8ee035a034..afb27b1818 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DispenserRepairIronGolem.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/DispenserRepairIronGolem.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/FireReforgeTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/FireReforgeTrigger.java index 1421c8ebf3..241acd19d8 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/FireReforgeTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/FireReforgeTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/HeatCollectorTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/HeatCollectorTrigger.java index b8e40ae4dc..33e8a00a02 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/HeatCollectorTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/HeatCollectorTrigger.java @@ -5,15 +5,15 @@ import dev.anvilcraft.lib.v2.util.predicate.BlockStatePredicate; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; import net.minecraft.advancements.Criterion; -import net.minecraft.advancements.critereon.ContextAwarePredicate; -import net.minecraft.advancements.critereon.EntityPredicate; -import net.minecraft.advancements.critereon.MinMaxBounds; -import net.minecraft.advancements.critereon.SimpleCriterionTrigger; +import net.minecraft.advancements.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.MinMaxBounds; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Optional; @@ -32,7 +32,7 @@ public record TriggerInstance( Optional collecting, Optional output ) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), BlockStatePredicate.CODEC.optionalFieldOf("collecting").forGetter(TriggerInstance::collecting), MinMaxBounds.Ints.CODEC.optionalFieldOf("output").forGetter(TriggerInstance::output) diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/InWorldRecipeTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/InWorldRecipeTrigger.java index 8da29a615f..2ed87c1487 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/InWorldRecipeTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/InWorldRecipeTrigger.java @@ -4,10 +4,10 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.resources.ResourceLocation; +import net.minecraft.advancements.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -18,17 +18,17 @@ public Codec codec() { return TriggerInstance.CODEC; } - public void trigger(ServerPlayer player, ResourceLocation recipeType, ResourceLocation id) { - this.trigger(player, (instance) -> instance.matches(recipeType, id)); + public void trigger(ServerPlayer player, Identifier recipeType, Identifier id) { + this.trigger(player, instance -> instance.matches(recipeType, id)); } public record TriggerInstance( - Optional player, Optional recipeType, Optional id + Optional player, Optional recipeType, Optional id ) implements SimpleCriterionTrigger.SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), - ResourceLocation.CODEC.optionalFieldOf("recipeType").forGetter(TriggerInstance::recipeType), - ResourceLocation.CODEC.optionalFieldOf("id").forGetter(TriggerInstance::id) + Identifier.CODEC.optionalFieldOf("recipeType").forGetter(TriggerInstance::recipeType), + Identifier.CODEC.optionalFieldOf("id").forGetter(TriggerInstance::id) ).apply(instance, TriggerInstance::new)); public static Criterion inWorldRecipe() { @@ -37,19 +37,19 @@ public static Criterion inWorldRecipe() { ); } - public static Criterion inWorldRecipe(ResourceLocation id) { + public static Criterion inWorldRecipe(Identifier id) { return ModCriterionTriggers.IN_WORLD_RECIPE.get().createCriterion( new TriggerInstance(Optional.empty(), Optional.empty(), Optional.of(id)) ); } - public static Criterion inWorldRecipeType(ResourceLocation recipeType) { + public static Criterion inWorldRecipeType(Identifier recipeType) { return ModCriterionTriggers.IN_WORLD_RECIPE.get().createCriterion( new TriggerInstance(Optional.empty(), Optional.of(recipeType), Optional.empty()) ); } - public boolean matches(ResourceLocation recipeType, ResourceLocation id) { + public boolean matches(Identifier recipeType, Identifier id) { if (this.recipeType.isEmpty() && this.id.isEmpty()) { return true; } diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MagnetLiftingAnvilTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MagnetLiftingAnvilTrigger.java index 69b6589075..42131e23d1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MagnetLiftingAnvilTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MagnetLiftingAnvilTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MilkTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MilkTrigger.java index a7a84e4db9..3a44e16d28 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MilkTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MilkTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MineralFountainCreateTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MineralFountainCreateTrigger.java index 71bd273468..9e41fe9c51 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MineralFountainCreateTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/MineralFountainCreateTrigger.java @@ -4,8 +4,8 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; import net.minecraft.advancements.Criterion; -import net.minecraft.advancements.critereon.ContextAwarePredicate; -import net.minecraft.advancements.critereon.SimpleCriterionTrigger; +import net.minecraft.advancements.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlacerPlaceTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlacerPlaceTrigger.java index 8c4a1330f8..7a166f249c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlacerPlaceTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlacerPlaceTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.block.Block; @@ -19,13 +19,13 @@ public Codec codec() { } public void trigger(ServerPlayer player, Block block) { - this.trigger(player, (instance) -> instance.matches(block)); + this.trigger(player, instance -> instance.matches(block)); } public record TriggerInstance( Optional player, Optional block ) implements SimpleCriterionTrigger.SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), BlockPredicate.CODEC.optionalFieldOf("block").forGetter(TriggerInstance::block) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerKilledEntityByAnvilHammerTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerKilledEntityByAnvilHammerTrigger.java index 35ee04a1f6..cf6c310bd3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerKilledEntityByAnvilHammerTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerKilledEntityByAnvilHammerTrigger.java @@ -4,9 +4,10 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; +import net.minecraft.core.HolderGetter; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -22,20 +23,22 @@ public Codec codec() { public void trigger(ServerPlayer player, Entity entity) { LootContext context = EntityPredicate.createContext(player, entity); - this.trigger(player, (instance) -> instance.matches(context)); + this.trigger(player, instance -> instance.matches(context)); } public record TriggerInstance( Optional player, Optional entity ) implements SimpleCriterionTrigger.SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(TriggerInstance::entity) ).apply(instance, TriggerInstance::new)); - public static Criterion killedEntity(EntityType type) { + public static Criterion killedEntity(HolderGetter> lookup, EntityType type) { return ModCriterionTriggers.PLAYER_KILLED_ENTITY_BY_ANVIL_HAMMER.get().createCriterion( - new TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(EntityPredicate.Builder.entity().of(type)))) + new TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap( + EntityPredicate.Builder.entity().of(lookup, type) + ))) ); } diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerWearAnvilHammerTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerWearAnvilHammerTrigger.java index e12df020aa..2ccdcdca02 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerWearAnvilHammerTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/PlayerWearAnvilHammerTrigger.java @@ -4,9 +4,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; 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.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; import java.util.Optional; @@ -22,7 +22,7 @@ public void trigger(ServerPlayer player) { } public record TriggerInstance(Optional player) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ).apply(instance, TriggerInstance::new)); diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/UseItemTrigger.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/UseItemTrigger.java index 44f98ea9d5..8459256462 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/UseItemTrigger.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/UseItemTrigger.java @@ -4,12 +4,14 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.init.ModCriterionTriggers; import net.minecraft.advancements.Criterion; -import net.minecraft.advancements.critereon.ContextAwarePredicate; -import net.minecraft.advancements.critereon.EntityPredicate; -import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.advancements.critereon.SimpleCriterionTrigger; +import net.minecraft.advancements.criterion.ContextAwarePredicate; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.ItemPredicate; +import net.minecraft.advancements.criterion.SimpleCriterionTrigger; +import net.minecraft.core.HolderGetter; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.item.Item; +import net.minecraft.world.level.ItemLike; import java.util.Optional; @@ -20,17 +22,21 @@ public Codec codec() { } public void trigger(ServerPlayer player, Item item) { - this.trigger(player, (instance) -> instance.matches(item)); + this.trigger(player, instance -> instance.matches(item)); } public record TriggerInstance(Optional player, Optional item) implements SimpleInstance { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( - EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player), - ItemPredicate.CODEC.optionalFieldOf("item").forGetter(TriggerInstance::item) - ).apply(instance, TriggerInstance::new)); - - public static Criterion useItem(Item item) { - return useItem(ItemPredicate.Builder.item().of(item)); + public static final Codec CODEC = RecordCodecBuilder.create(inst -> inst.group( + EntityPredicate.ADVANCEMENT_CODEC + .optionalFieldOf("player") + .forGetter(TriggerInstance::player), + ItemPredicate.CODEC + .optionalFieldOf("item") + .forGetter(TriggerInstance::item) + ).apply(inst, TriggerInstance::new)); + + public static Criterion useItem(HolderGetter items, ItemLike item) { + return useItem(ItemPredicate.Builder.item().of(items, item)); } public static Criterion useItem(ItemPredicate.Builder item) { diff --git a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/package-info.java b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/package-info.java index 4480ca9a40..bbea8a9d2a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/advancements/criterion/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.advancements.criterion; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/BeaconConversionBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/BeaconConversionBehavior.java index 1bf7a97680..b26166bb61 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/BeaconConversionBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/BeaconConversionBehavior.java @@ -6,6 +6,7 @@ import dev.dubhe.anvilcraft.init.item.ModItems; import it.unimi.dsi.fastutil.ints.Int2DoubleOpenHashMap; import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -19,17 +20,17 @@ public class BeaconConversionBehavior implements IAnvilBehavior { private static final Int2DoubleOpenHashMap map = new Int2DoubleOpenHashMap() { { - put(1, 0.02f); - put(2, 0.05f); - put(3, 0.2f); - put(4, 1f); + put(1, 0.02F); + put(2, 0.05F); + put(3, 0.2F); + put(4, 1F); } }; @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { BlockPos above = hitBlockPos.above(); - int beaconLevel = getBeaconLevel(level, hitBlockPos); + int beaconLevel = this.getBeaconLevel(level, hitBlockPos); final List itemEntities = level.getEntitiesOfClass(ItemEntity.class, new AABB(above)); BlockEntity blockEntity = level.getBlockEntity(hitBlockPos); if (!(blockEntity instanceof BeaconBlockEntity beaconBlockEntity)) { @@ -49,7 +50,7 @@ public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockStat itemEntity.setItem(stack); for (int i = 1; i <= 4; i++) { if (beaconLevel == i) { - if (level.random.nextDouble() < map.get(i)) { + if (level.getRandom().nextDouble() < map.get(i)) { level.setBlockAndUpdate(hitBlockPos, ModBlocks.CORRUPTED_BEACON.getDefaultState()); return true; } diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/BlockDevourerBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/BlockDevourerBehavior.java index 7e280262fb..78c57609d9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/BlockDevourerBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/BlockDevourerBehavior.java @@ -2,18 +2,16 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.BlockDevourerBlock; +import dev.dubhe.anvilcraft.block.utility.BlockDevourerBlock; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; public class BlockDevourerBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { - if (!(level instanceof ServerLevel serverLevel)) return false; + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { BlockDevourerBlock block = (BlockDevourerBlock) hitBlockState.getBlock(); int range = Math.min((int) fallDistance + 2, 4); level.setBlock(hitBlockPos, hitBlockState.setValue(BlockDevourerBlock.TRIGGERED, true), 2); @@ -25,7 +23,7 @@ public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockStat return true; } block.devourBlock( - serverLevel, + level, hitBlockPos, hitBlockState.getValue(BlockDevourerBlock.FACING), range, diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/BlockPlacerBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/BlockPlacerBehavior.java index 8990b97151..3541cacb36 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/BlockPlacerBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/BlockPlacerBehavior.java @@ -2,14 +2,14 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.BlockPlacerBlock; +import dev.dubhe.anvilcraft.block.utility.BlockPlacerBlock; import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.state.BlockState; public class BlockPlacerBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { BlockPlacerBlock block = (BlockPlacerBlock) hitBlockState.getBlock(); int distance = Math.min((int) event.getFallDistance() + 2, 5); level.setBlock(hitBlockPos, hitBlockState.setValue(BlockPlacerBlock.TRIGGERED, true), 2); diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/CementStainingBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/CementStainingBehavior.java index 3e69492250..14b4b08ae5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/CementStainingBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/CementStainingBehavior.java @@ -5,10 +5,10 @@ import dev.dubhe.anvilcraft.block.state.Color; import dev.dubhe.anvilcraft.init.block.ModBlocks; import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; @@ -18,10 +18,10 @@ public class CementStainingBehavior implements IAnvilBehavior { @Override public boolean handle( - Level level, + ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ) { Map items = level.getEntitiesOfClass(ItemEntity.class, new AABB(hitBlockPos)).stream() diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/GunpowderBlockBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/GunpowderBlockBehavior.java index 314556351d..dc3fdddf5e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/GunpowderBlockBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/GunpowderBlockBehavior.java @@ -2,19 +2,19 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.GunpowderBlock; import dev.dubhe.anvilcraft.block.multipart.AbstractMultiPartBlock; +import dev.dubhe.anvilcraft.block.storage.GunpowderBlock; import dev.dubhe.anvilcraft.entity.AnimateAscendingBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlocks; import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.BlockTags; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; public class GunpowderBlockBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { final BlockPos pos = event.getPos(); final BlockState blockState = level.getBlockState(pos); GunpowderBlock block = (GunpowderBlock) hitBlockState.getBlock(); diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/HitBeeNestBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/HitBeeNestBehavior.java index 1b195c5c6a..624a9d365e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/HitBeeNestBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/HitBeeNestBehavior.java @@ -5,17 +5,17 @@ import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.util.CauldronUtil; import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.BeehiveBlock; import net.minecraft.world.level.block.state.BlockState; public class HitBeeNestBehavior implements IAnvilBehavior { @Override public boolean handle( - Level level, + ServerLevel level, BlockPos pos, BlockState state, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ) { if (!state.hasBlockEntity()) return false; diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/HitCrabTrapBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/HitCrabTrapBehavior.java index a31263feaa..b5c17922e3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/HitCrabTrapBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/HitCrabTrapBehavior.java @@ -2,24 +2,25 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.CrabTrapBlock; import dev.dubhe.anvilcraft.block.entity.CrabTrapBlockEntity; +import dev.dubhe.anvilcraft.block.production.CrabTrapBlock; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -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; public class HitCrabTrapBehavior implements IAnvilBehavior { @Override public boolean handle( - Level level, + ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ) { if (!hitBlockState.hasBlockEntity()) return false; @@ -27,13 +28,17 @@ public boolean handle( Direction face = hitBlockState.getValue(CrabTrapBlock.FACING); Vec3 dropPos = hitBlockPos.above().relative(face).getCenter().relative(face.getOpposite(), 0.5); if (blockEntity == null) return false; - IItemHandler depository = blockEntity.getItemHandler(); - for (int i = 0; i < depository.getSlots(); i++) { - ItemStack stack = depository.getStackInSlot(i); - ItemEntity itemEntity = new ItemEntity(level, dropPos.x, dropPos.y - 0.4, dropPos.z, stack, 0, 0, 0); - itemEntity.setDefaultPickUpDelay(); - level.addFreshEntity(itemEntity); - depository.extractItem(i, stack.getCount(), false); + ResourceHandler depository = blockEntity.getItemHandler(); + for (int i = 0; i < depository.size(); i++) { + ItemResource resource = depository.getResource(i); + try (Transaction transaction = Transaction.openRoot()) { + int extracted = depository.extract(i, resource, Integer.MAX_VALUE, transaction); + if (extracted == 0) continue; + ItemEntity itemEntity = new ItemEntity(level, dropPos.x, dropPos.y - 0.4, dropPos.z, resource.toStack(extracted), 0, 0, 0); + itemEntity.setDefaultPickUpDelay(); + level.addFreshEntity(itemEntity); + transaction.commit(); + } } return false; } diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/HitSpawnerBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/HitSpawnerBehavior.java index 69eb72cd07..4f889426b1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/HitSpawnerBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/HitSpawnerBehavior.java @@ -3,43 +3,47 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; import dev.dubhe.anvilcraft.mixin.accessor.BaseSpawnerAccessor; +import lombok.extern.slf4j.Slf4j; import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.ProblemReporter; import net.minecraft.util.RandomSource; import net.minecraft.world.Difficulty; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntitySelector; +import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.SpawnPlacements; import net.minecraft.world.level.BaseSpawner; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.SpawnData; import net.minecraft.world.level.block.entity.SpawnerBlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.entity.EntityTypeTest; import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.storage.TagValueInput; +import net.minecraft.world.level.storage.ValueInput; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.event.EventHooks; import java.util.Optional; +@Slf4j public class HitSpawnerBehavior implements IAnvilBehavior { @Override public boolean handle( - Level level, + ServerLevel level, BlockPos pos, BlockState hitBlockState, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ) { if (level instanceof ServerLevel serverLevel) { RandomSource randomSource = serverLevel.getRandom(); float f = randomSource.nextFloat(); if (fallDistance <= 1) { - fallDistance = 1.1f; + fallDistance = 1.1F; } if (f <= (1 / fallDistance)) { return false; @@ -48,7 +52,7 @@ public boolean handle( BaseSpawner spawner = blockEntity.getSpawner(); BaseSpawnerAccessor accessor = (BaseSpawnerAccessor) spawner; SpawnData spawnData = accessor.invokeGetOrCreateNextSpawnData(level, randomSource, pos); - spawnEntities(spawnData, serverLevel, pos, randomSource, accessor); + this.spawnEntities(spawnData, serverLevel, pos, randomSource, spawner, accessor); } } return false; @@ -56,125 +60,89 @@ public boolean handle( private void spawnEntities( SpawnData spawnData, - ServerLevel serverLevel, + ServerLevel level, BlockPos pos, - RandomSource randomSource, + RandomSource random, + BaseSpawner spawner, BaseSpawnerAccessor accessor ) { - for (int i = 0; i < accessor.getSpawnCount(); ++i) { - CompoundTag compoundTag = spawnData.getEntityToSpawn(); - Optional> optional = EntityType.by(compoundTag); - if (optional.isEmpty()) { - return; - } + for (int c = 0; c < accessor.getSpawnCount(); c++) { + try (ProblemReporter.ScopedCollector reporter = new ProblemReporter.ScopedCollector(this::toString, log)) { + ValueInput input = TagValueInput.create(reporter, level.registryAccess(), spawnData.getEntityToSpawn()); + Optional> entityType = EntityType.by(input); + if (entityType.isEmpty()) return; - ListTag listTag = compoundTag.getList("Pos", 6); - int size = listTag.size(); - double x; - double y; - double z; - if (size >= 1) { - x = listTag.getDouble(0); - } else { - x = (double) pos.getX() - + (randomSource.nextDouble() - randomSource.nextDouble()) * accessor.getSpawnRange() - + 0.5; - } - if (size >= 2) { - y = listTag.getDouble(1); - } else { - y = pos.getY() + randomSource.nextInt(3) - 1; - } - if (size >= 3) { - z = listTag.getDouble(2); - } else { - z = (double) pos.getZ() - + (randomSource.nextDouble() - randomSource.nextDouble()) * accessor.getSpawnRange() - + 0.5; - } - if (serverLevel.noCollision(optional.get().getSpawnAABB(x, y, z))) { - BlockPos blockPos = BlockPos.containing(x, y, z); - if (spawnData.getCustomSpawnRules().isPresent()) { - if (!optional.get().getCategory().isFriendly() - && serverLevel.getDifficulty() == Difficulty.PEACEFUL - ) { - continue; - } + Vec3 spawnPos = input.read("Pos", Vec3.CODEC) + .orElseGet( + () -> new Vec3( + pos.getX() + (random.nextDouble() - random.nextDouble()) * accessor.getSpawnRange() + 0.5, + pos.getY() + random.nextInt(3) - 1, + pos.getZ() + (random.nextDouble() - random.nextDouble()) * accessor.getSpawnRange() + 0.5 + ) + ); + if (level.noCollision(entityType.get().getSpawnAABB(spawnPos.x, spawnPos.y, spawnPos.z))) { + BlockPos spawnBlockPos = BlockPos.containing(spawnPos); + if (spawnData.getCustomSpawnRules().isPresent()) { + if (!entityType.get().getCategory().isFriendly() && level.getDifficulty() == Difficulty.PEACEFUL) { + continue; + } - SpawnData.CustomSpawnRules customSpawnRules = - spawnData.getCustomSpawnRules().get(); - if (!customSpawnRules - .blockLightLimit() - .isValueInRange(serverLevel.getBrightness(LightLayer.BLOCK, blockPos)) - || !customSpawnRules - .skyLightLimit() - .isValueInRange(serverLevel.getBrightness(LightLayer.SKY, blockPos)) - ) { + SpawnData.CustomSpawnRules customSpawnRules = spawnData.getCustomSpawnRules().get(); + if (!customSpawnRules.isValidPosition(spawnBlockPos, level)) { + continue; + } + } else if (!SpawnPlacements.checkSpawnRules( + entityType.get(), + level, + EntitySpawnReason.SPAWNER, + spawnBlockPos, + level.getRandom() + )) { continue; } - } else if (!SpawnPlacements.checkSpawnRules( - optional.get(), serverLevel, MobSpawnType.SPAWNER, blockPos, serverLevel.getRandom()) - ) { - continue; - } - Entity entity = EntityType.loadEntityRecursive(compoundTag, serverLevel, it -> { - it.moveTo(x, y, z, it.getYRot(), it.getXRot()); - return it; - }); - if (entity == null) { - return; - } - AABB boundingBox = new AABB( - pos.getX(), - pos.getY(), - pos.getZ(), - pos.getX() + 1, - pos.getY() + 1, - pos.getZ() + 1 - ); - int k = serverLevel - .getEntitiesOfClass(entity.getClass(), boundingBox.inflate(accessor.getSpawnRange())) - .size(); - if (k >= accessor.getMaxNearbyEntities()) { - return; - } - entity.moveTo( - entity.getX(), - entity.getY(), - entity.getZ(), - randomSource.nextFloat() * 360.0F, - 0.0F - ); - if (entity instanceof Mob mob) { - if (spawnData.getCustomSpawnRules().isEmpty() - && !mob.checkSpawnRules(serverLevel, MobSpawnType.SPAWNER) - || !mob.checkSpawnObstruction(serverLevel) - ) { - continue; - } + Entity entity = EntityType.loadEntityRecursive(input, level, EntitySpawnReason.SPAWNER, e -> { + e.snapTo(spawnPos.x, spawnPos.y, spawnPos.z, e.getYRot(), e.getXRot()); + return e; + }); + if (entity == null) return; + + int nearBy = level.getEntities( + EntityTypeTest.forExactClass(entity.getClass()), + new AABB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1) + .inflate(accessor.getSpawnRange()), + EntitySelector.NO_SPECTATORS + ).size(); + if (nearBy >= accessor.getMaxNearbyEntities()) return; + + entity.snapTo(entity.getX(), entity.getY(), entity.getZ(), random.nextFloat() * 360.0F, 0.0F); + if (entity instanceof Mob mob) { + if (!EventHooks.checkSpawnPositionSpawner(mob, level, EntitySpawnReason.SPAWNER, spawnData, spawner)) { + continue; + } - if (spawnData.getEntityToSpawn().size() == 1 - && spawnData.getEntityToSpawn().contains("id", 8) - ) { - EventHooks.finalizeMobSpawn( + boolean hasNoConfiguration = spawnData.getEntityToSpawn().size() == 1 + && spawnData.getEntityToSpawn().getString("id").isPresent(); + EventHooks.finalizeMobSpawnSpawner( mob, - serverLevel, - serverLevel.getCurrentDifficultyAt(entity.blockPosition()), - MobSpawnType.SPAWNER, - null + level, + level.getCurrentDifficultyAt(entity.blockPosition()), + EntitySpawnReason.SPAWNER, + null, + spawner, + hasNoConfiguration ); + + spawnData.getEquipment().ifPresent(mob::equip); } - } - if (!serverLevel.tryAddFreshEntityWithPassengers(entity)) { - return; - } + if (!level.tryAddFreshEntityWithPassengers(entity)) return; - serverLevel.levelEvent(2004, pos, 0); - serverLevel.gameEvent(entity, GameEvent.ENTITY_PLACE, blockPos); - if (entity instanceof Mob) { - ((Mob) entity).spawnAnim(); + level.levelEvent(2004, pos, 0); + level.gameEvent(entity, GameEvent.ENTITY_PLACE, spawnBlockPos); + if (entity instanceof Mob) { + ((Mob) entity).spawnAnim(); + } } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/ImpactPileBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/ImpactPileBehavior.java index a1f2789e9e..eda1c58301 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/ImpactPileBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/ImpactPileBehavior.java @@ -2,19 +2,19 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.ImpactPileBlock; +import dev.dubhe.anvilcraft.block.utility.ImpactPileBlock; import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; public class ImpactPileBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { BlockState belowState = level.getBlockState(hitBlockPos.below()); if ( event.getFallDistance() + 1 >= 20 - && (level.getMinBuildHeight() <= hitBlockPos.getY() && hitBlockPos.getY() <= level.getMinBuildHeight() + 8) + && (level.getMinY() <= hitBlockPos.getY() && hitBlockPos.getY() <= level.getMinY() + 8) && (belowState.is(Blocks.DEEPSLATE) || belowState.is(Blocks.BEDROCK)) ) { ImpactPileBlock.impact(level, hitBlockPos); diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/ItemStampingBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/ItemStampingBehavior.java deleted file mode 100644 index daea42a145..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/ItemStampingBehavior.java +++ /dev/null @@ -1,124 +0,0 @@ -package dev.dubhe.anvilcraft.anvil; - -import dev.anvilcraft.lib.v2.util.predicate.ChanceItemStack; -import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; -import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.init.recipe.ModRecipeTypes; -import dev.dubhe.anvilcraft.recipe.anvil.StampingUniqueItemsRecipe; -import dev.dubhe.anvilcraft.recipe.anvil.input.ItemProcessInput; -import dev.dubhe.anvilcraft.util.AnvilUtil; -import dev.dubhe.anvilcraft.util.RecipeUtil; -import it.unimi.dsi.fastutil.objects.Object2IntMap; -import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; -import net.minecraft.Util; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.item.crafting.RecipeHolder; -import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootContext; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -import java.util.Map; -import java.util.Optional; - -public class ItemStampingBehavior implements IAnvilBehavior { - @Override - public boolean handle( - Level level, - BlockPos hitBlockPos, - BlockState hitBlockState, - float fallDistance, - AnvilEvent.OnLand event - ) { - return ItemStampingBehavior.itemProcess( - ModRecipeTypes.STAMPING_UNIQUE_ITEMS_TYPE.get(), - level, - hitBlockPos, - hitBlockPos.getCenter().add(0, 0.25, 0) - ); - } - - public static boolean itemProcess( - RecipeType recipeType, - Level level, - final BlockPos itemPos, - final Vec3 resultPos - ) { - Map items = level.getEntitiesOfClass(ItemEntity.class, new AABB(itemPos)).stream() - .map(it -> Map.entry(it, it.getItem())) - .collect(Util.toMap()); - - ItemProcessInput input = new ItemProcessInput(items.values().stream().toList()); - Optional> recipeOptional = level.getRecipeManager() - .getRecipesFor(recipeType, input, level) - .stream() - .max(ItemStampingBehavior::compareRecipeHolders); - if (recipeOptional.isPresent()) { - RecipeHolder recipe = recipeOptional.get(); - int times = recipe.value().getMaxCraftTime(); - Object2IntMap results = new Object2IntOpenHashMap<>(); - LootContext context; - if (level instanceof ServerLevel serverLevel) { - context = RecipeUtil.emptyLootContext(serverLevel); - } else { - return false; - } - - for (int i = 0; i < times; i++) { - for (Ingredient ingredient : recipe.value().getIngredients()) { - for (ItemStack stack : items.values()) { - if (ingredient.test(stack)) { - if (stack.hasCraftingRemainingItem()) { - ItemStack remain = stack.getCraftingRemainingItem(); - results.mergeInt(remain.getItem(), remain.getCount(), Integer::sum); - } - stack.shrink(1); - break; - } - } - } - for (ChanceItemStack stack : recipe.value().getResults()) { - int amount = stack.stack().getCount() * stack.count().getInt(context); - results.mergeInt(stack.stack().getItem(), amount, Integer::sum); - } - } - AnvilUtil.dropItems( - results.object2IntEntrySet().stream() - .map(entry -> new ItemStack(entry.getKey(), entry.getIntValue())) - .toList(), - level, - resultPos - ); - items.forEach((k, v) -> { - if (v.isEmpty()) { - k.discard(); - return; - } - k.setItem(v.copy()); - }); - return true; - } - return false; - } - - public static int compareRecipeHolders( - RecipeHolder holderA, - RecipeHolder holderB - ) { - StampingUniqueItemsRecipe a = holderA.value(); - StampingUniqueItemsRecipe b = holderB.value(); - if (a.mergedIngredients.size() == b.mergedIngredients.size()) { - int countA = a.mergedIngredients.stream().mapToInt(Object2IntMap.Entry::getIntValue).sum(); - int countB = b.mergedIngredients.stream().mapToInt(Object2IntMap.Entry::getIntValue).sum(); - return countA - countB; - } - return a.mergedIngredients.size() - b.mergedIngredients.size(); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/MagnetBlockBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/MagnetBlockBehavior.java index 2711b4b745..3487fafd18 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/MagnetBlockBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/MagnetBlockBehavior.java @@ -2,21 +2,21 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.MagnetBlock; +import dev.dubhe.anvilcraft.block.storage.MagnetBlock; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.init.item.ModItems; import dev.dubhe.anvilcraft.util.AnvilUtil; import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import java.util.Collections; public class MagnetBlockBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { if (hitBlockState.is(ModBlocks.MAGNET_BLOCK.get())) { boolean lit = hitBlockState.getValue(MagnetBlock.LIT); level.setBlockAndUpdate(hitBlockPos, ModBlocks.HOLLOW_MAGNET_BLOCK.get().defaultBlockState().setValue(MagnetBlock.LIT, lit)); diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/MassInjectBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/MassInjectBehavior.java index e0db80284b..d2f1d2ea78 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/MassInjectBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/MassInjectBehavior.java @@ -7,11 +7,11 @@ import dev.dubhe.anvilcraft.init.recipe.ModRecipeTypes; import dev.dubhe.anvilcraft.recipe.anvil.MassInjectRecipe; import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.item.crafting.SingleRecipeInput; -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.phys.AABB; @@ -22,22 +22,22 @@ public class MassInjectBehavior implements IAnvilBehavior { @Override public boolean handle( - Level level, + ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ) { BlockEntity blockEntity = level.getBlockEntity(hitBlockPos); if (!(blockEntity instanceof SpaceOvercompressorBlockEntity compressor)) return false; int remainingProcessCount = AnvilLibRecipe.CONFIG.inWorldRecipeMaxEfficiency; long totalMassConsumed = 0L; - RecipeManager manager = level.getRecipeManager(); + RecipeManager manager = level.recipeAccess(); List itemEntities = level.getEntitiesOfClass(ItemEntity.class, new AABB(hitBlockPos.above()), i -> !i.getItem().isEmpty()); for (ItemEntity itemEntity : itemEntities) { - Optional opt = manager.getRecipeFor(ModRecipeTypes.MASS_INJECT_TYPE.get(), + Optional opt = manager.getRecipeFor(ModRecipeTypes.MASS_INJECT.get(), new SingleRecipeInput(itemEntity.getItem()), level) .map(RecipeHolder::value); diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/RedstoneEMPBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/RedstoneEMPBehavior.java index 8f7c7d4988..a7c91c9c6d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/RedstoneEMPBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/RedstoneEMPBehavior.java @@ -6,6 +6,7 @@ import dev.dubhe.anvilcraft.init.block.ModBlockTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.RedstoneTorchBlock; @@ -14,10 +15,10 @@ public class RedstoneEMPBehavior implements IAnvilBehavior { @Override public boolean handle( - Level level, + ServerLevel level, BlockPos pos, BlockState hitBlockState, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ) { int radius = AnvilCraft.CONFIG.redstoneEmpRadius; @@ -26,28 +27,28 @@ public boolean handle( if (!level.getBlockState(pos.relative(Direction.EAST)).is(Blocks.IRON_TRAPDOOR)) { for (int x = 1; x < distance; x++) { for (int z = -distance; z < distance; z++) { - redstoneEmp(level, pos.offset(x, 0, z)); + this.redstoneEmp(level, pos.offset(x, 0, z)); } } } if (!level.getBlockState(pos.relative(Direction.WEST)).is(Blocks.IRON_TRAPDOOR)) { for (int x = -1; x > -distance; x--) { for (int z = -distance; z < distance; z++) { - redstoneEmp(level, pos.offset(x, 0, z)); + this.redstoneEmp(level, pos.offset(x, 0, z)); } } } if (!level.getBlockState(pos.relative(Direction.SOUTH)).is(Blocks.IRON_TRAPDOOR)) { for (int x = -distance; x < distance; x++) { for (int z = 1; z < distance; z++) { - redstoneEmp(level, pos.offset(x, 0, z)); + this.redstoneEmp(level, pos.offset(x, 0, z)); } } } if (!level.getBlockState(pos.relative(Direction.NORTH)).is(Blocks.IRON_TRAPDOOR)) { for (int x = -distance; x < distance; x++) { for (int z = -1; z > -distance; z--) { - redstoneEmp(level, pos.offset(x, 0, z)); + this.redstoneEmp(level, pos.offset(x, 0, z)); } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/ResetVaultBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/ResetVaultBehavior.java index 50797e4206..6bb05c7d29 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/ResetVaultBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/ResetVaultBehavior.java @@ -5,7 +5,7 @@ import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.mixin.accessor.VaultServerDataAccessor; import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.vault.VaultBlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -15,10 +15,10 @@ public class ResetVaultBehavior implements IAnvilBehavior { @Override public boolean handle( - Level level, + ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ) { if (!level.getBlockState(hitBlockPos).is(ModBlockTags.STORAGE_BLOCKS_LEAD)) return false; diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/SugarBlockBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/SugarBlockBehavior.java index 6a49e30dcd..e3e94d606e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/SugarBlockBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/SugarBlockBehavior.java @@ -2,14 +2,14 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.SugarBlock; +import dev.dubhe.anvilcraft.block.storage.SugarBlock; import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.state.BlockState; public class SugarBlockBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { SugarBlock block = (SugarBlock) hitBlockState.getBlock(); block.onHit(level, hitBlockPos); return true; diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/TimeWarpPlayerBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/TimeWarpPlayerBehavior.java index f61f2874db..82ae165102 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/TimeWarpPlayerBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/TimeWarpPlayerBehavior.java @@ -2,27 +2,28 @@ import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; import dev.dubhe.anvilcraft.api.event.AnvilEvent; -import dev.dubhe.anvilcraft.block.CorruptedBeaconBlock; +import dev.dubhe.anvilcraft.block.workstation.CorruptedBeaconBlock; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.init.entity.ModDamageTypes; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import java.util.List; public class TimeWarpPlayerBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { - if (!(level instanceof ServerLevel serverLevel)) return false; + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { BlockState below = level.getBlockState(hitBlockPos.below()); if (!below.is(ModBlocks.CORRUPTED_BEACON)) return false; if (!below.getValue(CorruptedBeaconBlock.LIT)) return false; - List players = serverLevel.getPlayers(player -> player.getOnPos().equals(hitBlockPos)); + List players = level.getPlayers(player -> player.getOnPos().equals(hitBlockPos)); if (players.isEmpty()) return false; - for (ServerPlayer player : players) player.hurt(ModDamageTypes.lostInTime(level), Float.MAX_VALUE); + for (ServerPlayer player : players) { + // noinspection deprecation + player.hurtOrSimulate(ModDamageTypes.lostInTime(level), Float.MAX_VALUE); + } return true; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/TranscendiumBehavior.java b/src/main/java/dev/dubhe/anvilcraft/anvil/TranscendiumBehavior.java index 9b484fd8fa..a452bf1b0c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/TranscendiumBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/TranscendiumBehavior.java @@ -6,6 +6,7 @@ import dev.dubhe.anvilcraft.init.item.ModItems; import net.minecraft.core.BlockPos; import net.minecraft.core.component.DataComponents; +import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; @@ -20,7 +21,7 @@ // TODO: 临时硬编码解决方案 public class TranscendiumBehavior implements IAnvilBehavior { @Override - public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockState, float fallDistance, AnvilEvent.OnLand event) { + public boolean handle(ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, double fallDistance, AnvilEvent.OnLand event) { final RandomSource random = level.getRandom(); final List itemEntities = level.getEntitiesOfClass(ItemEntity.class, new AABB(hitBlockPos.above())); @@ -48,7 +49,7 @@ public boolean handle(Level level, BlockPos hitBlockPos, BlockState hitBlockStat if (enchantmentCount == 0) { this.spawnItemEntity(level, hitBlockPos, ModItems.TRANSCENDIUM_INGOT.asStack(4)); } else if (enchantmentCount >= 1 && enchantmentCount <= 10) { - if (random.nextDouble() < 10 * enchantmentCount / 100f) { + if (random.nextDouble() < 10 * enchantmentCount / 100F) { this.spawnItemEntity(level, hitBlockPos, ModItems.NEUTRONIUM_INGOT.asStack()); } this.spawnItemEntity(level, hitBlockPos, ModItems.TRANSCENDIUM_INGOT.asStack(4)); diff --git a/src/main/java/dev/dubhe/anvilcraft/anvil/package-info.java b/src/main/java/dev/dubhe/anvilcraft/anvil/package-info.java index 726f93d83e..32d55ad209 100644 --- a/src/main/java/dev/dubhe/anvilcraft/anvil/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/anvil/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.anvil; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/BlockPlaceAssist.java b/src/main/java/dev/dubhe/anvilcraft/api/BlockPlaceAssist.java index 191631e291..7c6d750c17 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/BlockPlaceAssist.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/BlockPlaceAssist.java @@ -3,6 +3,7 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -26,10 +27,12 @@ public class BlockPlaceAssist { private static List orderDirectionByDistance( BlockPos pos, Vec3 hit, Predicate includeDirection) { - Vec3 centerToHit = hit.subtract(Vec3.atLowerCornerOf(pos).add(.5f, .5f, .5f)); + Vec3 centerToHit = hit.subtract(Vec3.atLowerCornerOf(pos).add(.5F, .5F, .5F)); return Arrays.stream(Direction.values()) .filter(includeDirection) - .map(dir -> Pair.of(dir, Vec3.atLowerCornerOf(dir.getNormal()).distanceTo(centerToHit))) + .map(dir -> Pair.of(dir, Vec3.atLowerCornerOf( + new Vec3i(dir.getStepX(), dir.getStepY(), dir.getStepZ()) + ).distanceTo(centerToHit))) .sorted(Comparator.comparingDouble(Pair::getSecond)) .map(Pair::getFirst) .collect(Collectors.toList()); @@ -46,7 +49,7 @@ public static InteractionResult tryPlace( EnumProperty propertyDef, BlockState newBlockState ) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; if (player.isShiftKeyDown() || !player.mayBuild()) return InteractionResult.PASS; ItemStack itemInHand = player.getItemInHand(hand); if (itemInHand.is(blockItem)) { @@ -79,8 +82,8 @@ public static InteractionResult tryPlace( blockPos, soundType.getPlaceSound(), SoundSource.BLOCKS, - (soundType.volume + 1) / 2.0f, - soundType.pitch * 0.8f + (soundType.volume + 1) / 2.0F, + soundType.pitch * 0.8F ); if (!player.getAbilities().instabuild) itemInHand.shrink(1); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/RipeningManager.java b/src/main/java/dev/dubhe/anvilcraft/api/RipeningManager.java index 15a8e824b6..794f0347d7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/RipeningManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/RipeningManager.java @@ -45,18 +45,18 @@ private void doRipen(BlockPos pos, HashSet ripened) { int radius = AnvilCraft.CONFIG.inductionLightBlockRipeningRange / 2; for (BlockPos plantPos : BlockPos.betweenClosed(pos.offset(radius, radius, radius), pos.offset(-radius, -radius, -radius))) { if (ripened.contains(plantPos)) continue; - BlockState state = level.getBlockState(plantPos); + BlockState state = this.level.getBlockState(plantPos); Block block = state.getBlock(); if ( block instanceof BonemealableBlock growable && !(growable instanceof GrassBlock) && !(growable instanceof NyliumBlock) - && growable.isValidBonemealTarget(level, plantPos, state) - && level.getBrightness(LightLayer.BLOCK, plantPos) >= 10 + && growable.isValidBonemealTarget(this.level, plantPos, state) + && this.level.getBrightness(LightLayer.BLOCK, plantPos) >= 10 ) { - growable.performBonemeal((ServerLevel) level, level.getRandom(), plantPos, state); - level.addParticle( + growable.performBonemeal((ServerLevel) this.level, this.level.getRandom(), plantPos, state); + this.level.addParticle( ParticleTypes.HAPPY_VILLAGER, plantPos.getX() + 0.5, plantPos.getY() + 0.5, @@ -67,12 +67,12 @@ private void doRipen(BlockPos pos, HashSet ripened) { ); ripened.add(plantPos); } - if (state.is(Blocks.SUGAR_CANE) && level.getBlockState(plantPos.above()).is(Blocks.AIR)) { - level.setBlock(plantPos.above(), Blocks.SUGAR_CANE.defaultBlockState(), Block.UPDATE_ALL_IMMEDIATE); - } else if (state.is(Blocks.CACTUS) && level.getBlockState(plantPos.above()).is(Blocks.AIR)) { - level.setBlock(plantPos.above(), Blocks.CACTUS.defaultBlockState(), Block.UPDATE_ALL_IMMEDIATE); + if (state.is(Blocks.SUGAR_CANE) && this.level.getBlockState(plantPos.above()).is(Blocks.AIR)) { + this.level.setBlock(plantPos.above(), Blocks.SUGAR_CANE.defaultBlockState(), Block.UPDATE_ALL_IMMEDIATE); + } else if (state.is(Blocks.CACTUS) && this.level.getBlockState(plantPos.above()).is(Blocks.AIR)) { + this.level.setBlock(plantPos.above(), Blocks.CACTUS.defaultBlockState(), Block.UPDATE_ALL_IMMEDIATE); } else if (state.is(Blocks.NETHER_WART) && state.getValue(NetherWartBlock.AGE) != NetherWartBlock.MAX_AGE) { - level.setBlock( + this.level.setBlock( plantPos, Blocks.NETHER_WART.defaultBlockState().setValue(NetherWartBlock.AGE, state.getValue(NetherWartBlock.AGE) + 1), Block.UPDATE_ALL_IMMEDIATE @@ -82,7 +82,7 @@ private void doRipen(BlockPos pos, HashSet ripened) { } public void doRipen(BlockPos blockPos) { - if (isRipenReady()) doRipen(blockPos, ripened); + if (this.isRipenReady()) this.doRipen(blockPos, this.ripened); } /** @@ -94,17 +94,17 @@ public void doRipen(BlockPos blockPos) { * @return if already cooldown for ripen */ private boolean isRipenReady() { - if (level.getServer() == null) return false; - long curTime = level.getGameTime(); - long ticksBeforeLastRipen = curTime - lastTickRipen; + if (this.level.getServer() == null) return false; + long curTime = this.level.getGameTime(); + long ticksBeforeLastRipen = curTime - this.lastTickRipen; if (ticksBeforeLastRipen == 0) return true; // another LightBlock is Ripened at this tick. if (ticksBeforeLastRipen < 0) { // time set xxx may change the gameTime. - lastTickRipen = curTime - 1; + this.lastTickRipen = curTime - 1; return false; } if (ticksBeforeLastRipen >= AnvilCraft.CONFIG.inductionLightBlockRipeningCooldown) { - lastTickRipen = curTime; - ripened.clear(); + this.lastTickRipen = curTime; + this.ripened.clear(); return true; } return false; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/SpawningManager.java b/src/main/java/dev/dubhe/anvilcraft/api/SpawningManager.java index 16d2fb2948..b1a85f2e93 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/SpawningManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/SpawningManager.java @@ -2,14 +2,14 @@ import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.AnvilCraft; -import dev.dubhe.anvilcraft.block.InductionLightBlock; import dev.dubhe.anvilcraft.block.entity.InductionLightBlockEntity; +import dev.dubhe.anvilcraft.block.power.consumer.InductionLightBlock; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; @@ -164,16 +164,16 @@ private static boolean ignoreSummonMob(Level level, MobSpawnEvent.PositionCheck * * @param event 生物生成位置检查事件 * @see MobSpawnEvent.PositionCheck - * @see MobSpawnType + * @see EntitySpawnReason * @see #ignoreSummonMob(Level, MobSpawnEvent.PositionCheck, Set, boolean) */ @SubscribeEvent private static void blockEntitySummon(MobSpawnEvent.PositionCheck event) { - MobSpawnType spawnType = event.getSpawnType(); + EntitySpawnReason spawnType = event.getSpawnType(); if ( - !spawnType.equals(MobSpawnType.NATURAL) - && !spawnType.equals(MobSpawnType.CHUNK_GENERATION) - && !spawnType.equals(MobSpawnType.PATROL) + !spawnType.equals(EntitySpawnReason.NATURAL) + && !spawnType.equals(EntitySpawnReason.CHUNK_GENERATION) + && !spawnType.equals(EntitySpawnReason.PATROL) ) { return; } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/advancement/AdvancementLineHelper.java b/src/main/java/dev/dubhe/anvilcraft/api/advancement/AdvancementLineHelper.java index b87a8dbec1..8c0239fcf8 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/advancement/AdvancementLineHelper.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/advancement/AdvancementLineHelper.java @@ -1,5 +1,6 @@ package dev.dubhe.anvilcraft.api.advancement; +import com.google.common.collect.Lists; import dev.anvilcraft.lib.v2.util.predicate.BlockStatePredicate; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.advancements.criterion.AnvilHammerClickBlockTrigger; @@ -27,35 +28,40 @@ import net.minecraft.advancements.AdvancementType; import net.minecraft.advancements.Criterion; import net.minecraft.advancements.DisplayInfo; -import net.minecraft.advancements.critereon.DamagePredicate; -import net.minecraft.advancements.critereon.DamageSourcePredicate; -import net.minecraft.advancements.critereon.EntityPredicate; -import net.minecraft.advancements.critereon.InventoryChangeTrigger; -import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.advancements.critereon.ItemUsedOnLocationTrigger; -import net.minecraft.advancements.critereon.MinMaxBounds; -import net.minecraft.advancements.critereon.PlayerHurtEntityTrigger; -import net.minecraft.advancements.critereon.PlayerTrigger; -import net.minecraft.advancements.critereon.RecipeCraftedTrigger; -import net.minecraft.advancements.critereon.SlotsPredicate; +import net.minecraft.advancements.criterion.DamagePredicate; +import net.minecraft.advancements.criterion.DamageSourcePredicate; +import net.minecraft.advancements.criterion.DataComponentMatchers; +import net.minecraft.advancements.criterion.EntityPredicate; +import net.minecraft.advancements.criterion.InventoryChangeTrigger; +import net.minecraft.advancements.criterion.ItemPredicate; +import net.minecraft.advancements.criterion.ItemUsedOnLocationTrigger; +import net.minecraft.advancements.criterion.MinMaxBounds; +import net.minecraft.advancements.criterion.PlayerHurtEntityTrigger; +import net.minecraft.advancements.criterion.PlayerTrigger; +import net.minecraft.advancements.criterion.RecipeCraftedTrigger; +import net.minecraft.advancements.criterion.SlotsPredicate; +import net.minecraft.core.HolderGetter; +import net.minecraft.core.HolderSet; import net.minecraft.core.registries.BuiltInRegistries; +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.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.inventory.SlotRanges; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.storage.loot.LootTable; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.function.Consumer; import java.util.function.Supplier; public class AdvancementLineHelper { @@ -82,10 +88,10 @@ public AdvancementHelper(AdvancementLineHelper lineHelper) { } public AdvancementHelper display( - ItemStack icon, + ItemStackTemplate icon, Component title, Component description, - @Nullable ResourceLocation background, + @Nullable Identifier background, AdvancementType type, boolean showToast, boolean announceChat, @@ -99,7 +105,7 @@ public AdvancementHelper display( ItemLike icon, Component title, Component description, - @Nullable ResourceLocation background, + @Nullable Identifier background, AdvancementType type, boolean showToast, boolean announceChat, @@ -164,8 +170,8 @@ public AdvancementHelper playerFirstDetected(String key) { return this.addCriterion(key, PlayerTrigger.TriggerInstance.tick()); } - public AdvancementHelper hasItems(String key, TagKey tag) { - return this.addCriterion(key, InventoryChangeTrigger.TriggerInstance.hasItems(ItemPredicate.Builder.item().of(tag))); + public AdvancementHelper hasItems(String key, HolderGetter items, TagKey tag) { + return this.addCriterion(key, InventoryChangeTrigger.TriggerInstance.hasItems(ItemPredicate.Builder.item().of(items, tag))); } public AdvancementHelper hasItems(String key, ItemLike... items) { @@ -182,35 +188,35 @@ public AdvancementHelper hasItemAny(String keyPrefix, ItemLike... items) { return this; } - public AdvancementHelper useItem(String key, ItemLike item) { - return this.addCriterion(key, UseItemTrigger.TriggerInstance.useItem(item.asItem())); + public AdvancementHelper useItem(String key, HolderGetter items, ItemLike item) { + return this.addCriterion(key, UseItemTrigger.TriggerInstance.useItem(items, item.asItem())); } - public AdvancementHelper recipe(String key, ResourceLocation recipeId) { - return this.addCriterion(key, RecipeCraftedTrigger.TriggerInstance.craftedItem(recipeId)); + public AdvancementHelper recipe(String key, Identifier recipeId) { + return this.addCriterion(key, RecipeCraftedTrigger.TriggerInstance.craftedItem( + ResourceKey.create(Registries.RECIPE, recipeId) + )); } public AdvancementHelper recipeMod(String key, String namespace, String recipeId) { - return this.addCriterion(key, RecipeCraftedTrigger.TriggerInstance.craftedItem( - ResourceLocation.fromNamespaceAndPath(namespace, recipeId) - )); + return this.recipe(key, Identifier.fromNamespaceAndPath(namespace, recipeId)); } public AdvancementHelper recipeAnc(String key, String recipeId) { - return this.addCriterion(key, RecipeCraftedTrigger.TriggerInstance.craftedItem(AnvilCraft.of(recipeId))); + return this.recipe(key, AnvilCraft.of(recipeId)); } public AdvancementHelper inWorldRecipe(String key) { return this.addCriterion(key, InWorldRecipeTrigger.TriggerInstance.inWorldRecipe()); } - public AdvancementHelper inWorldRecipe(String key, ResourceLocation recipeId) { + public AdvancementHelper inWorldRecipe(String key, Identifier recipeId) { return this.addCriterion(key, InWorldRecipeTrigger.TriggerInstance.inWorldRecipe(recipeId)); } public AdvancementHelper inWorldRecipeMod(String key, String namespace, String recipeId) { return this.addCriterion(key, InWorldRecipeTrigger.TriggerInstance.inWorldRecipe( - ResourceLocation.fromNamespaceAndPath(namespace, recipeId) + Identifier.fromNamespaceAndPath(namespace, recipeId) )); } @@ -218,13 +224,13 @@ public AdvancementHelper inWorldRecipeAnc(String key, String recipeId) { return this.addCriterion(key, InWorldRecipeTrigger.TriggerInstance.inWorldRecipe(AnvilCraft.of(recipeId))); } - public AdvancementHelper inWorldRecipeType(String key, ResourceLocation typeId) { + public AdvancementHelper inWorldRecipeType(String key, Identifier typeId) { return this.addCriterion(key, InWorldRecipeTrigger.TriggerInstance.inWorldRecipeType(typeId)); } public AdvancementHelper inWorldRecipeTypeMod(String key, String namespace, String typeId) { return this.addCriterion(key, InWorldRecipeTrigger.TriggerInstance.inWorldRecipeType( - ResourceLocation.fromNamespaceAndPath(namespace, typeId) + Identifier.fromNamespaceAndPath(namespace, typeId) )); } @@ -240,8 +246,8 @@ public AdvancementHelper anvilLooting(String key) { return this.addCriterion(key, AnvilLootingTrigger.TriggerInstance.looting()); } - public AdvancementHelper anvilLooting(String key, EntityType type) { - return this.addCriterion(key, AnvilLootingTrigger.TriggerInstance.looting(type)); + public AdvancementHelper anvilLooting(String key, HolderGetter> lookup, EntityType type) { + return this.addCriterion(key, AnvilLootingTrigger.TriggerInstance.looting(lookup, type)); } public AdvancementHelper repairIronGolem(String key) { @@ -300,8 +306,8 @@ public AdvancementHelper hammerHurt(String key, float damage) { return this.addCriterion(key, AnvilHammerHurtEntityTrigger.TriggerInstance.hurtEntity(damage)); } - public AdvancementHelper hammerKill(String key, EntityType type) { - return this.addCriterion(key, PlayerKilledEntityByAnvilHammerTrigger.TriggerInstance.killedEntity(type)); + public AdvancementHelper hammerKill(String key, HolderGetter> lookup, EntityType type) { + return this.addCriterion(key, PlayerKilledEntityByAnvilHammerTrigger.TriggerInstance.killedEntity(lookup, type)); } public AdvancementHelper wearHammer(String key) { @@ -327,6 +333,7 @@ public AdvancementHelper hurt(String key, ItemPredicate.Builder builder, float d )); } + @SuppressWarnings("deprecation") public AdvancementHelper hurt(String key, float damage, ItemLike... items) { return this.addCriterion(key, PlayerHurtEntityTrigger.TriggerInstance.playerHurtEntityWithDamage( DamagePredicate.Builder.damageInstance() @@ -336,7 +343,14 @@ public AdvancementHelper hurt(String key, float damage, ItemLike... items) { EntityPredicate.Builder.entity() .slots(new SlotsPredicate(Map.of( Objects.requireNonNull(SlotRanges.nameToIds("weapon")), - ItemPredicate.Builder.item().of(items).build() + new ItemPredicate( + Optional.of(HolderSet.direct(Lists.transform( + List.of(items), + item -> item.asItem().builtInRegistryHolder() + ))), + MinMaxBounds.Ints.ANY, + DataComponentMatchers.ANY + ) ))) ) ) @@ -361,9 +375,15 @@ public AdvancementHelper mineralFountainCreate(String key) { } public AdvancementHolder build(String id) { - AdvancementHolder holder = this.current.build(AnvilCraft.advancementOf(id)); + AdvancementHolder holder = this.current.build(AnvilCraft.advancement(id)); this.lineHelper.parent = holder; return holder; } + + public AdvancementHolder save(Consumer output, String id) { + AdvancementHolder advancement = this.build(id); + output.accept(advancement); + return advancement; + } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/advancement/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/advancement/package-info.java index 7ee5507ebf..c507431e6c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/advancement/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/advancement/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.advancement; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletManager.java b/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletManager.java index 918abcd14c..59c1786e8f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletManager.java @@ -94,7 +94,7 @@ public List> getTypesFromInventory(Player player) { } public Optional> getTypeMatchedDamage(ServerPlayer player, DamageSource source, HolderLookup.Provider registries) { - Optional> lookupOptional = registries.lookup(ModRegistries.AMULET_TYPE_KEY); + Optional> lookupOptional = registries.lookup(ModRegistries.AMULET_TYPE_KEY); return lookupOptional.flatMap(lookup -> lookup.listElements() .filter(reference -> reference.value().canObtain(player, source)) .findFirst()); @@ -171,7 +171,7 @@ public void resetState(ServerPlayer player) { } public void inventoryTick(ServerPlayer player) { - resetState(player); + this.resetState(player); HashMultimap, ItemStack> amulets = this.getAmuletsFromInventory(player); for (Supplier amuletGetter : this.amuletItems) { AmuletItem amuletItem = amuletGetter.get(); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletRaffleProbability.java b/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletRaffleProbability.java index 7961739f03..fb292236ae 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletRaffleProbability.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/amulet/AmuletRaffleProbability.java @@ -1,6 +1,8 @@ package dev.dubhe.anvilcraft.api.amulet; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.dubhe.anvilcraft.api.amulet.type.AmuletType; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; @@ -13,9 +15,12 @@ */ public record AmuletRaffleProbability(Object2IntOpenHashMap map) { public static final AmuletRaffleProbability EMPTY = new AmuletRaffleProbability(new Object2IntOpenHashMap<>()); - public static final Codec CODEC = Codec.unboundedMap(AmuletType.CODEC, Codec.INT) - .xmap(Object2IntOpenHashMap::new, Function.identity()) - .xmap(AmuletRaffleProbability::new, AmuletRaffleProbability::map); + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> inst.group( + Codec.unboundedMap(AmuletType.CODEC, Codec.INT) + .fieldOf("probabilities") + .xmap(Object2IntOpenHashMap::new, Function.identity()) + .forGetter(AmuletRaffleProbability::map) + ).apply(inst, AmuletRaffleProbability::new)); /** * 获取该类型在此处存储的概率。 diff --git a/src/main/java/dev/dubhe/anvilcraft/api/amulet/fromto/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/amulet/fromto/package-info.java index f54abbbe97..f4ea332881 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/amulet/fromto/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/amulet/fromto/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.amulet.fromto; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/amulet/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/amulet/package-info.java index bb2a17b98f..b684c9e474 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/amulet/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/amulet/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.amulet; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/AmuletType.java b/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/AmuletType.java index 1a77137615..d2e52e488a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/AmuletType.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/AmuletType.java @@ -14,8 +14,8 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.tags.TagKey; import net.minecraft.world.damagesource.DamageSource; @@ -88,7 +88,7 @@ public Builder obtainByDamage(TagKey tag) { return this.obtain((player, source) -> source.typeHolder().is(tag)); } - public Builder obtainByDamage(ResourceLocation type) { + public Builder obtainByDamage(Identifier type) { return this.obtainByDamage(TagKey.create(Registries.DAMAGE_TYPE, type)); } @@ -108,14 +108,15 @@ public Builder obtainByMurder(EntityType... entities) { .orElse(false)); } + @SuppressWarnings("deprecation") public Builder obtainByMurder(TagKey> tag) { return this.obtain((player, source) -> Optional.ofNullable(source.getEntity()) .flatMap(e -> Util.castSafely(e, LivingEntity.class)) - .map(e -> e.getType().is(tag)) + .map(e -> e.getType().builtInRegistryHolder().is(tag)) .orElse(false)); } - public Builder obtainByMurder(ResourceLocation type) { + public Builder obtainByMurder(Identifier type) { return this.obtainByMurder(TagKey.create(Registries.ENTITY_TYPE, type)); } @@ -135,14 +136,15 @@ public Builder obtainByDirectMurder(EntityType... entities) { .orElse(false)); } + @SuppressWarnings("deprecation") public Builder obtainByDirectMurder(TagKey> tag) { return this.obtain((player, source) -> Optional.ofNullable(source.getDirectEntity()) .flatMap(e -> Util.castSafely(e, LivingEntity.class)) - .map(e -> e.getType().is(tag)) + .map(e -> e.getType().builtInRegistryHolder().is(tag)) .orElse(false)); } - public Builder obtainByDirectMurder(ResourceLocation type) { + public Builder obtainByDirectMurder(Identifier type) { return this.obtainByDirectMurder(TagKey.create(Registries.ENTITY_TYPE, type)); } @@ -173,7 +175,7 @@ public Builder obtainByDamageOr(TagKey tag) { return this.obtainOr((player, source) -> source.typeHolder().is(tag)); } - public Builder obtainByDamageOr(ResourceLocation type) { + public Builder obtainByDamageOr(Identifier type) { return this.obtainByDamageOr(TagKey.create(Registries.DAMAGE_TYPE, type)); } @@ -193,14 +195,15 @@ public Builder obtainByMurderOr(EntityType... entities) { .orElse(false)); } + @SuppressWarnings("deprecation") public Builder obtainByMurderOr(TagKey> tag) { return this.obtainOr((player, source) -> Optional.ofNullable(source.getEntity()) .flatMap(e -> Util.castSafely(e, LivingEntity.class)) - .map(e -> e.getType().is(tag)) + .map(e -> e.getType().builtInRegistryHolder().is(tag)) .orElse(false)); } - public Builder obtainByMurderOr(ResourceLocation type) { + public Builder obtainByMurderOr(Identifier type) { return this.obtainByMurderOr(TagKey.create(Registries.ENTITY_TYPE, type)); } @@ -220,14 +223,15 @@ public Builder obtainByDirectMurderOr(EntityType... entities) { .orElse(false)); } + @SuppressWarnings("deprecation") public Builder obtainByDirectMurderOr(TagKey> tag) { return this.obtainOr((player, source) -> Optional.ofNullable(source.getDirectEntity()) .flatMap(e -> Util.castSafely(e, LivingEntity.class)) - .map(e -> e.getType().is(tag)) + .map(e -> e.getType().builtInRegistryHolder().is(tag)) .orElse(false)); } - public Builder obtainByDirectMurderOr(ResourceLocation type) { + public Builder obtainByDirectMurderOr(Identifier type) { return this.obtainByDirectMurderOr(TagKey.create(Registries.ENTITY_TYPE, type)); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/package-info.java index cf98d02ed1..bd5ab4c3c8 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.amulet.type; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/anvil/IAnvilBehavior.java b/src/main/java/dev/dubhe/anvilcraft/api/anvil/IAnvilBehavior.java index cdae076cce..fd80f70688 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/anvil/IAnvilBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/anvil/IAnvilBehavior.java @@ -3,7 +3,7 @@ import dev.dubhe.anvilcraft.api.event.AnvilBehaviorRegisterEvent; import dev.dubhe.anvilcraft.api.event.AnvilEvent; import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.neoforged.neoforge.common.NeoForge; @@ -19,10 +19,10 @@ public interface IAnvilBehavior { Map, IAnvilBehavior> BEHAVIORS = new LinkedHashMap<>(); boolean handle( - Level level, + ServerLevel level, BlockPos hitBlockPos, BlockState hitBlockState, - float fallDistance, + double fallDistance, AnvilEvent.OnLand event ); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/anvil/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/anvil/package-info.java index 720f95b525..281a8751eb 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/anvil/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/anvil/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.anvil; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/behavior/BehaviorTree.java b/src/main/java/dev/dubhe/anvilcraft/api/behavior/BehaviorTree.java index ec10ddfdc2..7498181f6a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/behavior/BehaviorTree.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/behavior/BehaviorTree.java @@ -11,7 +11,7 @@ public BehaviorTree(TreeNode root) { public boolean run(T context) { AtomicBoolean matches = new AtomicBoolean(false); - walkNode(new ExecutionContext<>(context), root, matches); + this.walkNode(new ExecutionContext<>(context), this.root, matches); return matches.get(); } @@ -19,7 +19,7 @@ public void walkNode(ExecutionContext context, TreeNode node, AtomicBoolea if (node.matches(context)) { returns.set(true); for (TreeNode child : node.getChildren()) { - walkNode(context, child, returns); + this.walkNode(context, child, returns); } node.run(context); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutableTreeNode.java b/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutableTreeNode.java index 1dcce03203..1de5d4ff37 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutableTreeNode.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutableTreeNode.java @@ -19,6 +19,6 @@ public boolean matches(ExecutionContext context) { @Override public void run(ExecutionContext context) { - executes.accept(context); + this.executes.accept(context); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutionContext.java b/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutionContext.java index a41b9d5a3d..e352d15345 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutionContext.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/behavior/ExecutionContext.java @@ -12,11 +12,11 @@ public ExecutionContext(T context) { } public void putAttachment(String key, Object item) { - attachment.put(key, item); + this.attachment.put(key, item); } public T1 getAttachment(String key, Class ty) { - Object item = attachment.get(key); + Object item = this.attachment.get(key); if (ty.isInstance(item)) { return ty.cast(item); } @@ -30,10 +30,10 @@ public T1 getAttachment(String key, Class ty) { } public boolean has(String key) { - return attachment.containsKey(key); + return this.attachment.containsKey(key); } public T unwrap() { - return context; + return this.context; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateExecutableTreeNode.java b/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateExecutableTreeNode.java index 2cb8695f30..f1bf4a6022 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateExecutableTreeNode.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateExecutableTreeNode.java @@ -20,7 +20,7 @@ public void run(ExecutionContext context) { @Override public boolean matches(ExecutionContext context) { - return predicate.test(context); + return this.predicate.test(context); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateTreeNode.java b/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateTreeNode.java index 29c8c52f6b..fc23541149 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateTreeNode.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/behavior/PredicateTreeNode.java @@ -13,6 +13,6 @@ public PredicateTreeNode(Predicate> predicate) { @Override public boolean matches(ExecutionContext context) { - return predicate.test(context); + return this.predicate.test(context); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/behavior/SetTreeNode.java b/src/main/java/dev/dubhe/anvilcraft/api/behavior/SetTreeNode.java index ea8cf99d01..134ed8658d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/behavior/SetTreeNode.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/behavior/SetTreeNode.java @@ -25,10 +25,10 @@ public SetTreeNode then(TreeNode node) { @Override public Collection> getChildren() { - return childrens; + return this.childrens; } public SetTreeNode executes(Consumer> consumer) { - return then(TreeNode.executes(consumer)); + return this.then(TreeNode.executes(consumer)); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/behavior/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/behavior/package-info.java index 5bdc80db07..878587b203 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/behavior/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/behavior/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.behavior; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/block/IEmberBlock.java b/src/main/java/dev/dubhe/anvilcraft/api/block/IEmberBlock.java index 732db6af06..1c6a2c133d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/block/IEmberBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/block/IEmberBlock.java @@ -32,8 +32,8 @@ default Class getBlockType() { */ default void tryAbsorbWater(Level level, BlockPos pos) { if (this.removeFluidBreadthFirstSearch(level, pos)) { - level.levelEvent(2001, pos, Block.getId(getCheckBlockState())); - level.playSound(null, pos, SoundEvents.LAVA_EXTINGUISH, SoundSource.BLOCKS, 1f, 1f); + level.levelEvent(2001, pos, Block.getId(this.getCheckBlockState())); + level.playSound(null, pos, SoundEvents.LAVA_EXTINGUISH, SoundSource.BLOCKS, 1F, 1F); } } @@ -49,20 +49,20 @@ private boolean removeFluidBreadthFirstSearch(Level level, BlockPos pos) { }, (checkedPos) -> { if (checkedPos.equals(pos)) { - return true; + return BlockPos.TraversalNodeStatus.ACCEPT; } else { BlockState blockState = level.getBlockState(checkedPos); FluidState fluidState = level.getFluidState(checkedPos); if (!fluidState.is(Fluids.WATER)) { - return false; + return BlockPos.TraversalNodeStatus.SKIP; } else { Block block = blockState.getBlock(); if (block instanceof BucketPickup bucketPickup) { if (!bucketPickup .pickupBlock(null, level, checkedPos, blockState) .isEmpty()) { - setCheckBlockState(blockState); - return true; + this.setCheckBlockState(blockState); + return BlockPos.TraversalNodeStatus.ACCEPT; } } @@ -73,7 +73,7 @@ private boolean removeFluidBreadthFirstSearch(Level level, BlockPos pos) { && !blockState.is(Blocks.KELP_PLANT) && !blockState.is(Blocks.SEAGRASS) && !blockState.is(Blocks.TALL_SEAGRASS)) { - return false; + return BlockPos.TraversalNodeStatus.SKIP; } BlockEntity blockEntity = @@ -81,8 +81,8 @@ private boolean removeFluidBreadthFirstSearch(Level level, BlockPos pos) { Block.dropResources(blockState, level, checkedPos, blockEntity); level.setBlock(checkedPos, Blocks.AIR.defaultBlockState(), 3); } - setCheckBlockState(blockState); - return true; + this.setCheckBlockState(blockState); + return BlockPos.TraversalNodeStatus.ACCEPT; } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/block/IIgnitableCauldron.java b/src/main/java/dev/dubhe/anvilcraft/api/block/IIgnitableCauldron.java new file mode 100644 index 0000000000..82472646cd --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/block/IIgnitableCauldron.java @@ -0,0 +1,20 @@ +package dev.dubhe.anvilcraft.api.block; + +import dev.anvilcraft.lib.v2.recipe.cache.BlockCache; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.material.Fluid; + +public interface IIgnitableCauldron { + default boolean isIgnited(BlockCache cache, BlockPos pos) { + return true; + } + + default void setIgnited(BlockCache cache, BlockPos pos, boolean ignited) { + } + + Fluid getFluid(BlockCache cache, BlockPos pos); + + default boolean consumeOnce(BlockCache cache, BlockPos pos) { + return false; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/block/INegativeShapeBlock.java b/src/main/java/dev/dubhe/anvilcraft/api/block/INegativeShapeBlock.java index 048ad96a97..e48a3c1033 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/block/INegativeShapeBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/block/INegativeShapeBlock.java @@ -1,7 +1,15 @@ package dev.dubhe.anvilcraft.api.block; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import net.minecraft.world.level.block.state.BlockState; -public interface INegativeShapeBlock extends IHammerRemovable { +import java.util.function.Predicate; + +public interface INegativeShapeBlock extends IHammerRemovable, Predicate { Class getBlockType(); + + @Override + default boolean test(BlockState blockState) { + return this.getBlockType().isInstance(blockState.getBlock()); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/block/entity/IExtensibleBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/api/block/entity/IExtensibleBlockEntity.java new file mode 100644 index 0000000000..890a9839d8 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/block/entity/IExtensibleBlockEntity.java @@ -0,0 +1,10 @@ +package dev.dubhe.anvilcraft.api.block.entity; + +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; + +public interface IExtensibleBlockEntity { + BlockEntityType getThatType(); + + void extend(T newBe); +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/block/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/block/package-info.java index 2b7fe47cc2..26332abf08 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/block/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/block/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.block; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/ChargeCollectorManager.java b/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/ChargeCollectorManager.java index 26a8ff69e0..feaa42dfd1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/ChargeCollectorManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/ChargeCollectorManager.java @@ -57,7 +57,7 @@ public void charge(double chargeNum, BlockPos blockPos) { Collection chargeCollectorCollection = this.getNearestChargeCollect(blockPos); double surplus = chargeNum; for (Entry entry : chargeCollectorCollection) { - ChargeCollectorBlockEntity chargeCollectorBlockEntity = entry.getBlockEntity(); + ChargeCollectorBlockEntity chargeCollectorBlockEntity = entry.blockEntity(); if (!this.canCollect(chargeCollectorBlockEntity, blockPos)) return; surplus = chargeCollectorBlockEntity.incomingCharge(surplus, blockPos); if (surplus == 0) return; @@ -68,14 +68,14 @@ public void charge(double chargeNum, BlockPos blockPos) { * 添加新的集电器 */ public void addChargeCollector(ChargeCollectorBlockEntity blockEntity) { - chargeCollectors.put(blockEntity.getBlockPos(), blockEntity); + this.chargeCollectors.put(blockEntity.getBlockPos(), blockEntity); } /** * 删除集电器 */ public void removeChargeCollector(ChargeCollectorBlockEntity blockEntity) { - chargeCollectors.remove(blockEntity.getBlockPos()); + this.chargeCollectors.remove(blockEntity.getBlockPos()); } /** @@ -83,7 +83,7 @@ public void removeChargeCollector(ChargeCollectorBlockEntity blockEntity) { */ public List getNearestChargeCollect(BlockPos blockPos) { List distanceList = new ArrayList<>(); - for (Map.Entry entry : chargeCollectors.entrySet()) { + for (Map.Entry entry : this.chargeCollectors.entrySet()) { double distance = Vector3f.distance( entry.getKey().getX(), entry.getKey().getY(), @@ -95,7 +95,7 @@ public List getNearestChargeCollect(BlockPos blockPos) { distanceList.add(new Entry(distance, entry.getValue())); } return distanceList.stream() - .sorted(Comparator.comparing(Entry::getDistance)) + .sorted(Comparator.comparing(Entry::distance)) .collect(Collectors.toList()); } @@ -115,14 +115,6 @@ public boolean canCollect(ChargeCollectorBlockEntity blockEntity, BlockPos block && blockEntity.getPos().getZ() + 2 >= blockPos.getZ(); } - @Getter - public static class Entry { - public final double distance; - public final ChargeCollectorBlockEntity blockEntity; - - public Entry(Double distance, ChargeCollectorBlockEntity blockEntity) { - this.distance = distance; - this.blockEntity = blockEntity; - } + public record Entry(double distance, ChargeCollectorBlockEntity blockEntity) { } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/package-info.java index f61ed89f99..f17c625966 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/chargecollector/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.chargecollector; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/energy/EnergyHelper.java b/src/main/java/dev/dubhe/anvilcraft/api/energy/EnergyHelper.java index 7ab4a4fdde..8fbbb1ea7e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/energy/EnergyHelper.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/energy/EnergyHelper.java @@ -4,15 +4,18 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.Level; import net.neoforged.neoforge.capabilities.Capabilities; -import net.neoforged.neoforge.energy.IEnergyStorage; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.transaction.Transaction; public class EnergyHelper { /** * 塞能量 */ public static void insertEnergy(Level level, BlockPos pos, Direction direction, int amount) { - IEnergyStorage energyStorage = level.getCapability(Capabilities.EnergyStorage.BLOCK, pos, direction); + EnergyHandler energyStorage = level.getCapability(Capabilities.Energy.BLOCK, pos, direction); if (energyStorage == null) return; - energyStorage.receiveEnergy(amount, false); + Transaction transaction = Transaction.openRoot(); + energyStorage.insert(amount, transaction); + transaction.commit(); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/energy/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/energy/package-info.java index 0be935ce23..a2d135e349 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/energy/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/energy/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.energy; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/entity/attribute/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/entity/attribute/package-info.java index 5754129ea0..87576b6b24 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/entity/attribute/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/entity/attribute/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.entity.attribute; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/AnvilCraftDestroyerFakePlayer.java b/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/AnvilCraftDestroyerFakePlayer.java index 0d259137c7..c0f8bc4eaf 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/AnvilCraftDestroyerFakePlayer.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/AnvilCraftDestroyerFakePlayer.java @@ -1,7 +1,6 @@ package dev.dubhe.anvilcraft.api.entity.fakeplayer; import com.mojang.authlib.GameProfile; -import lombok.Data; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; @@ -34,7 +33,7 @@ public ServerPlayer offerPlayer(ServerLevel level) { destroyer = new Destroyer(level, ENABLED_DESTROYERS.size()); } ENABLED_DESTROYERS.add(destroyer); - return destroyer.getPlayer(); + return destroyer.player(); } public void enabledDestroy(ServerPlayer player, ItemStack itemStack) { @@ -45,29 +44,26 @@ public void enabledDestroy(ServerPlayer player, ItemStack itemStack) { } public void disable(ServerPlayer player) { - ENABLED_DESTROYERS.stream() - .filter(destroyer -> destroyer.getUUID().equals(player.getUUID())) - .findFirst() - .ifPresent(destroyer -> { - destroyer.getPlayer().setItemInHand(InteractionHand.MAIN_HAND, ItemStack.EMPTY); - DISABLED_DESTROYERS.offer(destroyer); - ENABLED_DESTROYERS.remove(destroyer); - }); + for (Destroyer destroyer : AnvilCraftDestroyerFakePlayer.ENABLED_DESTROYERS) { + if (!destroyer.getUUID().equals(player.getUUID())) continue; + destroyer.player().setItemInHand(InteractionHand.MAIN_HAND, ItemStack.EMPTY); + DISABLED_DESTROYERS.offer(destroyer); + ENABLED_DESTROYERS.remove(destroyer); + break; + } } - @Data - public static final class Destroyer { - private final GameProfile profile; - private final ServerPlayer player; + public record Destroyer(ServerPlayer player, GameProfile profile) { + public Destroyer(ServerLevel player, int profile) { + this(FakePlayerFactory.get(player, Destroyer.create(profile)), Destroyer.create(profile)); + } - public Destroyer(ServerLevel level, int index) { - this.profile = FAKE_PROFILE_FACTORY.apply(index + 1); - this.player = FakePlayerFactory.get(level, this.profile); + private static GameProfile create(int profile) { + return AnvilCraftDestroyerFakePlayer.FAKE_PROFILE_FACTORY.apply(profile + 1); } public UUID getUUID() { return this.player.getUUID(); } } - } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/package-info.java index 7b8c64c793..936818d284 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/entity/fakeplayer/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.entity.fakeplayer; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/entity/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/entity/package-info.java index b2bac1d780..c2df07c591 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/entity/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/entity/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.entity; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/entity/player/IAnvilCraftBlockPlacer.java b/src/main/java/dev/dubhe/anvilcraft/api/entity/player/IAnvilCraftBlockPlacer.java index cf1e0e52b5..03e532b6ff 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/entity/player/IAnvilCraftBlockPlacer.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/entity/player/IAnvilCraftBlockPlacer.java @@ -39,17 +39,17 @@ default InteractionResult placeBlock( if (AnvilCraftFakePlayers.BLOCK_PLACER_BLACKLIST.contains(BuiltInRegistries.BLOCK.getKey(blockItem.getBlock()).toString())) { return InteractionResult.FAIL; } - if (level instanceof ServerLevel serverLevel) getPlayer().setServerLevel(serverLevel); + if (level instanceof ServerLevel serverLevel) this.getPlayer().setServerLevel(serverLevel); // 获取fakePlayer的方向 与放置器的方向不太一样 Orientation fakePlayerOrientation = orientation.flipHorizontalIfVertical(); - getPlayer().setYRot(fakePlayerOrientation.getYRotation()); + this.getPlayer().setYRot(fakePlayerOrientation.getYRotation()); /* * net.minecraft.core.Direction#orderedByNearest 方法判断的是玩家的yHeadRot,设置YRot时需要将 * 该字段一并设置,以使得部分方块的方向检测正确 */ - getPlayer().setYHeadRot(fakePlayerOrientation.getYRotation()); - getPlayer().setXRot(fakePlayerOrientation.getXRotation()); - Vec3 clickClickLocation = getPosFromOrientation(orientation); + this.getPlayer().setYHeadRot(fakePlayerOrientation.getYRotation()); + this.getPlayer().setXRot(fakePlayerOrientation.getXRotation()); + Vec3 clickClickLocation = this.getPosFromOrientation(orientation); double x = clickClickLocation.x; double y = clickClickLocation.y; double z = clickClickLocation.z; @@ -62,8 +62,8 @@ default InteractionResult placeBlock( BlockPlaceContext blockPlaceContext = new BlockPlaceContext( level, - getPlayer(), - getPlayer().getUsedItemHand(), + this.getPlayer(), + this.getPlayer().getUsedItemHand(), itemStack, blockHitResult ); @@ -71,14 +71,14 @@ default InteractionResult placeBlock( // 实际上,如果需要nbt的话,直接用NeoForge自带的就行 InteractionResult ir = blockItem.place(blockPlaceContext); if (ir == InteractionResult.FAIL) return ir; - SoundType soundType = blockState.getSoundType(level, pos, getPlayer()); + SoundType soundType = blockState.getSoundType(level, pos, this.getPlayer()); level.playSound( - getPlayer(), + this.getPlayer(), pos, soundType.getPlaceSound(), SoundSource.BLOCKS, - (soundType.getVolume() + 1.0f) / 2.0f, - soundType.getPitch() * 0.8f + (soundType.getVolume() + 1.0F) / 2.0F, + soundType.getPitch() * 0.8F ); TriggerUtil.placerPlaceBlock(level, pos, blockState.getBlock()); return InteractionResult.SUCCESS; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/entity/player/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/entity/player/package-info.java index 4726cab52c..0888ab8962 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/entity/player/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/entity/player/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.entity.player; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilBehaviorRegisterEvent.java b/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilBehaviorRegisterEvent.java index 23f9a9e26a..111913070f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilBehaviorRegisterEvent.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilBehaviorRegisterEvent.java @@ -1,6 +1,7 @@ package dev.dubhe.anvilcraft.api.event; import dev.dubhe.anvilcraft.api.anvil.IAnvilBehavior; +import net.minecraft.core.Holder; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.neoforged.bus.api.Event; @@ -16,12 +17,16 @@ public AnvilBehaviorRegisterEvent(BlockBehaviorRegister blockBehaviorRegister, S this.stateBehaviorRegister = stateBehaviorRegister; } + public void registerBehavior(Holder matchingBlock, IAnvilBehavior behavior) { + this.blockBehaviorRegister.register(matchingBlock.value(), behavior); + } + public void registerBehavior(Block matchingBlock, IAnvilBehavior behavior) { - blockBehaviorRegister.register(matchingBlock, behavior); + this.blockBehaviorRegister.register(matchingBlock, behavior); } public void registerBehavior(Predicate pred, IAnvilBehavior behavior) { - stateBehaviorRegister.register(pred, behavior); + this.stateBehaviorRegister.register(pred, behavior); } public interface BlockBehaviorRegister { diff --git a/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilEvent.java b/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilEvent.java index 669d385dad..2bf6b13245 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilEvent.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/event/AnvilEvent.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.item.FallingBlockEntity; import net.minecraft.world.level.Level; @@ -21,9 +22,9 @@ public AnvilEvent(FallingBlockEntity entity) { @Getter public static class OnLand extends AnvilEvent { - private final Level level; + private final ServerLevel level; private final BlockPos pos; - private final float fallDistance; + private final double fallDistance; @Setter private boolean isAnvilDamage = false; @@ -36,7 +37,7 @@ public static class OnLand extends AnvilEvent { * @param entity 铁砧 * @param fallDistance 下落距离 */ - public OnLand(Level level, BlockPos pos, FallingBlockEntity entity, float fallDistance) { + public OnLand(ServerLevel level, BlockPos pos, FallingBlockEntity entity, double fallDistance) { super(entity); this.level = level; this.pos = pos; @@ -71,7 +72,7 @@ public CollisionBlock(Level level, BlockPos pos, FallingBlockEntity entity, doub @Getter public static class GiantOnLand extends AnvilEvent { - private final Level level; + private final ServerLevel level; private final BlockPos pos; private final float fallDistance; private final FallingGiantAnvilEntity entity; @@ -87,7 +88,7 @@ public static class GiantOnLand extends AnvilEvent { * @param entity 铁砧 * @param fallDistance 下落距离 */ - public GiantOnLand(Level level, BlockPos pos, FallingGiantAnvilEntity entity, float fallDistance) { + public GiantOnLand(ServerLevel level, BlockPos pos, FallingGiantAnvilEntity entity, float fallDistance) { super(entity); this.level = level; this.pos = pos; @@ -99,7 +100,7 @@ public GiantOnLand(Level level, BlockPos pos, FallingGiantAnvilEntity entity, fl @Getter public static class HurtEntity extends AnvilEvent { private final BlockPos pos; - private final Level level; + private final ServerLevel level; private final Entity hurtedEntity; private final float damage; @@ -115,7 +116,7 @@ public static class HurtEntity extends AnvilEvent { public HurtEntity( FallingBlockEntity entity, BlockPos pos, - Level level, + ServerLevel level, Entity hurtedEntity, float damage ) { diff --git a/src/main/java/dev/dubhe/anvilcraft/api/event/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/event/package-info.java index cece9d51cb..d76a91a5c2 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/event/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/event/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.event; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/fluid/IFluidHandlerHolder.java b/src/main/java/dev/dubhe/anvilcraft/api/fluid/IFluidHandlerHolder.java index ea6b1264e6..d15903c743 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/fluid/IFluidHandlerHolder.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/fluid/IFluidHandlerHolder.java @@ -1,10 +1,11 @@ package dev.dubhe.anvilcraft.api.fluid; -import net.neoforged.neoforge.fluids.capability.IFluidHandler; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidResource; /** * 持有FluidTank的 */ public interface IFluidHandlerHolder { - IFluidHandler getFluidHandler(); + ResourceHandler getFluidHandler(); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/fluid/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/fluid/package-info.java index b994f6ec8b..9c82f6cd08 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/fluid/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/fluid/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.fluid; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/CapacityModifiableFluidHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/CapacityModifiableFluidHandler.java new file mode 100644 index 0000000000..c5b3581eae --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/CapacityModifiableFluidHandler.java @@ -0,0 +1,19 @@ +package dev.dubhe.anvilcraft.api.fluidtank; + +import net.minecraft.core.NonNullList; +import net.neoforged.neoforge.fluids.FluidStack; +import net.neoforged.neoforge.transfer.fluid.FluidStacksResourceHandler; + +public class CapacityModifiableFluidHandler extends FluidStacksResourceHandler { + public CapacityModifiableFluidHandler(int size, int capacity) { + super(size, capacity); + } + + public CapacityModifiableFluidHandler(NonNullList stacks, int capacity) { + super(stacks, capacity); + } + + public void setCapacity(int capacity) { + this.capacity = capacity; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/InfinityFluidTank.java b/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/InfinityFluidTank.java index a01d799003..55d26a47d3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/InfinityFluidTank.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/InfinityFluidTank.java @@ -1,82 +1,109 @@ package dev.dubhe.anvilcraft.api.fluidtank; +import dev.dubhe.anvilcraft.mixin.accessor.StacksResourceHandlerAccessor; import lombok.Getter; import lombok.Setter; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; +import net.minecraft.core.NonNullList; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.fluids.capability.IFluidHandler; -import net.neoforged.neoforge.fluids.capability.templates.FluidTank; +import net.neoforged.neoforge.transfer.fluid.FluidResource; +import net.neoforged.neoforge.transfer.fluid.FluidStacksResourceHandler; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; -import java.util.function.Predicate; +@Getter +@Setter +public class InfinityFluidTank extends FluidStacksResourceHandler { + private boolean infinity; -public class InfinityFluidTank extends FluidTank { - @Setter - @Getter - private boolean isInfinity; - - public InfinityFluidTank(int capacity, Predicate validator) { - this(capacity, validator, true); + public InfinityFluidTank(int capacity) { + this(1, capacity, false); } - public InfinityFluidTank(int capacity, Predicate validator, boolean isInfinity) { - super(capacity, validator); - this.isInfinity = isInfinity; + public InfinityFluidTank(int capacity, boolean infinity) { + this(1, capacity, infinity); } - public InfinityFluidTank(int capacity) { - this(capacity, true); + public InfinityFluidTank(int size, int capacity, boolean infinity) { + super(size, capacity); + this.infinity = infinity; } - public InfinityFluidTank(int capacity, boolean isInfinity) { - super(capacity); - this.isInfinity = isInfinity; + public InfinityFluidTank(NonNullList stacks, int capacity, boolean infinity) { + super(stacks, capacity); + this.infinity = infinity; } - public FluidTank readFromNBT(HolderLookup.Provider lookupProvider, CompoundTag nbt) { - super.readFromNBT(lookupProvider, nbt); - this.isInfinity = nbt.getBoolean("Infinity"); - return this; + @Override + protected int getCapacity(int index, FluidResource resource) { + if (this.isInfinity()) return Integer.MAX_VALUE; + return super.getCapacity(index, resource); } - public CompoundTag writeToNBT(HolderLookup.Provider lookupProvider, CompoundTag nbt) { - super.writeToNBT(lookupProvider, nbt); - nbt.putBoolean("Infinity", this.isInfinity); - return nbt; + public void setCapacity(int capacity) { + this.capacity = capacity; + for (int i = 0; i < this.size(); i++) { + FluidResource resource = this.getResource(i); + if (this.infinity && !resource.isEmpty()) { + this.stacks.set(i, this.getStackFrom(resource, capacity)); + } + } } @Override - public FluidTank setCapacity(int capacity) { - super.setCapacity(capacity); - if (this.isInfinity && !this.fluid.isEmpty()) this.fluid.setAmount(this.capacity); - return this; + public int extract(FluidResource resource, int amount, TransactionContext transaction) { + if (!this.infinity) return super.extract(resource, amount, transaction); + + for (int i = 0; i < this.size(); i++) { + int extracted = this.extract(i, resource, amount, transaction); + if (extracted == amount) return amount; + } + return 0; } @Override - public int fill(FluidStack resource, IFluidHandler.FluidAction action) { - if (!this.isInfinity) return super.fill(resource, action); + public int extract(int index, FluidResource resource, int amount, TransactionContext transaction) { + if (!this.infinity) return super.extract(index, resource, amount, transaction); - if (resource.isEmpty() || !this.isFluidValid(resource)) return 0; + return this.getResource(index).isEmpty() ? 0 : amount; + } - if (!this.fluid.isEmpty() && !FluidStack.isSameFluidSameComponents(this.fluid, resource)) return 0; + @Override + public int insert(FluidResource resource, int amount, TransactionContext transaction) { + if (!this.infinity) return super.insert(resource, amount, transaction); - if (!action.simulate() && this.fluid.isEmpty()) { - this.fluid = resource.copyWithAmount(this.capacity); - this.onContentsChanged(); + for (int i = 0; i < this.size(); i++) { + int inserted = this.insert(i, resource, amount, transaction); + if (inserted == amount) return amount; } - return resource.getAmount(); - + return 0; } @Override - public FluidStack drain(int maxDrain, IFluidHandler.FluidAction action) { - if (!this.isInfinity) return super.drain(maxDrain, action); + public int insert(int index, FluidResource resource, int amount, TransactionContext transaction) { + if (!this.infinity) return super.insert(index, resource, amount, transaction); + + if (resource.isEmpty() || !this.isValid(index, resource)) return 0; + + FluidResource resourceIn = this.getResource(0); + if (!resourceIn.isEmpty() && !resourceIn.equals(resource)) return 0; - return this.isEmpty() ? FluidStack.EMPTY : this.fluid.copyWithAmount(maxDrain); + if (resourceIn.isEmpty()) { + ((StacksResourceHandlerAccessor) this).getSnapshotJournals().get(index).updateSnapshots(transaction); + this.stacks.set(index, this.getStackFrom(resource, this.getCapacity(index, resource))); + } + return amount; + } + + @Override + public void serialize(ValueOutput output) { + super.serialize(output); + output.putBoolean("Infinity", this.infinity); } @Override - public int getSpace() { - return isInfinity ? Integer.MAX_VALUE : super.getSpace(); + public void deserialize(ValueInput input) { + super.deserialize(input); + this.infinity = input.getBooleanOr("Infinity", false); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/package-info.java index b61332633c..a04f9594a4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/fluidtank/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.fluidtank; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/hammer/HammerRotateBehavior.java b/src/main/java/dev/dubhe/anvilcraft/api/hammer/HammerRotateBehavior.java index cb3171f864..72e4d1bd4e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/hammer/HammerRotateBehavior.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/hammer/HammerRotateBehavior.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; 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.Property; /** @@ -15,9 +15,9 @@ */ @SuppressWarnings("unused") public interface HammerRotateBehavior extends IHammerChangeable { - DirectionProperty FACING_HOPPER = BlockStateProperties.FACING_HOPPER; - DirectionProperty FACING = BlockStateProperties.FACING; - DirectionProperty HORIZONTAL_FACING = BlockStateProperties.HORIZONTAL_FACING; + EnumProperty FACING_HOPPER = BlockStateProperties.FACING_HOPPER; + EnumProperty FACING = BlockStateProperties.FACING; + EnumProperty HORIZONTAL_FACING = BlockStateProperties.HORIZONTAL_FACING; HammerRotateBehavior DEFAULT = new HammerRotateBehavior() { }; HammerRotateBehavior EMPTY = new HammerRotateBehavior() { diff --git a/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHammerChangeable.java b/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHammerChangeable.java index 436597b207..78abed0463 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHammerChangeable.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHammerChangeable.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Property; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; /** * 可被锤子改变的 diff --git a/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHasHammerEffect.java b/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHasHammerEffect.java index 3cdbfbd818..dfdff95180 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHasHammerEffect.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/hammer/IHasHammerEffect.java @@ -1,6 +1,6 @@ package dev.dubhe.anvilcraft.api.hammer; -import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.rendertype.RenderType; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/hammer/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/hammer/package-info.java index fc32d9c86e..bd39ca5ffc 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/hammer/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/hammer/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.hammer; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/heat/HeatRecorder.java b/src/main/java/dev/dubhe/anvilcraft/api/heat/HeatRecorder.java index 071baa4040..b492e2c6bf 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/heat/HeatRecorder.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/heat/HeatRecorder.java @@ -11,7 +11,7 @@ import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.init.block.ModBlocks; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -29,11 +29,11 @@ import java.util.function.Supplier; public class HeatRecorder { - private static final Map ENTRY_TO_ID = new HashMap<>(); - private static final Map> ENTRIES = new HashMap<>(); + private static final Map ENTRY_TO_ID = new HashMap<>(); + private static final Map> ENTRIES = new HashMap<>(); static final Set> PRODUCER_INFOS = new HashSet<>(); - public static RegisterHelper registerHeatables(ResourceLocation id) { + public static RegisterHelper registerHeatables(Identifier id) { return new RegisterHelper(id); } @@ -44,9 +44,9 @@ public static HeaterInfo registerProducerInfo(HeaterInfo info) { @SuppressWarnings({"unused", "UnusedReturnValue"}) public static class RegisterHelper { - private final ResourceLocation id; + private final Identifier id; - public RegisterHelper(ResourceLocation id) { + public RegisterHelper(Identifier id) { this.id = id; } @@ -167,14 +167,14 @@ public RegisterHelper customTier(HeatTier tier, Block heatable, TriPredicate getEntry(ResourceLocation id, HeatTier tier) { + public static Optional getEntry(Identifier id, HeatTier tier) { for (HeatableBlockEntry entry : ENTRIES.get(id)) { if (entry.getTier().equals(tier)) return Optional.of(entry); } return Optional.empty(); } - public static Optional getEntry(ResourceLocation id, Level level, BlockPos pos, BlockState state) { + public static Optional getEntry(Identifier id, Level level, BlockPos pos, BlockState state) { for (HeatableBlockEntry entry : ENTRIES.get(id)) { if (entry.isValidBlock(level, pos, state)) return Optional.of(entry); } @@ -194,7 +194,7 @@ public static Optional getEntry(Level level, BlockPos pos, B .flatMap(id -> Optional.ofNullable(ENTRIES.get(id).get(tier.ordinal()))); } - private static Pair, Optional> getIdAndEntry(HeatTier tier) { + private static Pair, Optional> getIdAndEntry(HeatTier tier) { for (List entries : ENTRIES.values()) { for (HeatableBlockEntry entry : entries) { if (entry.getTier().equals(tier)) { @@ -205,7 +205,7 @@ private static Pair, Optional> ge return new Pair<>(Optional.empty(), Optional.empty()); } - private static Pair, Optional> getIdAndEntry( + private static Pair, Optional> getIdAndEntry( Level level, BlockPos pos, BlockState state ) { for (List entries : ENTRIES.values()) { @@ -218,11 +218,11 @@ private static Pair, Optional> ge return new Pair<>(Optional.empty(), Optional.empty()); } - public static Optional getId(HeatTier tier) { + public static Optional getId(HeatTier tier) { return getIdAndEntry(tier).getFirst(); } - public static Optional getId(Level level, BlockPos pos, BlockState state) { + public static Optional getId(Level level, BlockPos pos, BlockState state) { return getIdAndEntry(level, pos, state).getFirst(); } @@ -234,13 +234,13 @@ public static Optional getHeatableBlock(Level level, BlockPos pos, BlockS return getEntry(level, pos, prevState, tier).map(HeatableBlockEntry::getDefaultBlock); } - public static Optional getHeatableBlock(ResourceLocation id, HeatTier tier) { + public static Optional getHeatableBlock(Identifier id, HeatTier tier) { return getEntry(id, tier).map(HeatableBlockEntry::getDefaultBlock); } public static Optional getPrevTierEntry(Level level, BlockPos pos, BlockState state) { - Pair, Optional> pair = getIdAndEntry(level, pos, state); - Optional idOp = pair.getFirst(); + Pair, Optional> pair = getIdAndEntry(level, pos, state); + Optional idOp = pair.getFirst(); Optional entryOp = pair.getSecond(); if (idOp.isEmpty() || entryOp.isEmpty()) return Optional.empty(); List entries = ENTRIES.get(idOp.get()); @@ -256,8 +256,8 @@ public static Optional getPrevTierHeatableBlock(Level level, BlockPos pos } public static Optional getNextTierEntry(Level level, BlockPos pos, BlockState state) { - Pair, Optional> pair = getIdAndEntry(level, pos, state); - Optional idOp = pair.getFirst(); + Pair, Optional> pair = getIdAndEntry(level, pos, state); + Optional idOp = pair.getFirst(); Optional entryOp = pair.getSecond(); if (idOp.isEmpty() || entryOp.isEmpty()) return Optional.empty(); List entries = ENTRIES.get(idOp.get()); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/heat/HeaterManager.java b/src/main/java/dev/dubhe/anvilcraft/api/heat/HeaterManager.java index 066c6b487a..21b039620c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/heat/HeaterManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/heat/HeaterManager.java @@ -6,19 +6,21 @@ import com.google.common.collect.Multimaps; import com.mojang.datafixers.util.Pair; import dev.anvilcraft.lib.v2.util.Util; +import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.block.entity.heatable.HeatableBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.redstone.Orientation; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -30,8 +32,6 @@ import java.util.Optional; import java.util.Set; -import static dev.dubhe.anvilcraft.api.power.PowerGrid.GRID_TICK; - public class HeaterManager { private static final Map INSTANCES = new HashMap<>(); @@ -40,7 +40,7 @@ public class HeaterManager { private final Multimap, BlockPos> producers = Multimaps.synchronizedSetMultimap(HashMultimap.create()); public static HeaterManager getInstance(Level level) { - if (level.isClientSide) return new HeaterManager(level); + if (level.isClientSide()) return new HeaterManager(level); if (!INSTANCES.containsKey(level)) { INSTANCES.put(level, new HeaterManager(level)); } @@ -69,7 +69,7 @@ public static void removeProducer(BlockPos pos, Level level, HeaterInfo info) public static void tickAll() { INSTANCES.forEach((level, manager) -> { - if (level.getGameTime() % GRID_TICK != 0) return; + if (level.getGameTime() % PowerGrid.GRID_TICK != 0) return; if (level.tickRateManager().isFrozen() && !level.tickRateManager().isSteppingForward()) return; manager.tick(); }); @@ -121,7 +121,7 @@ private void tickProducers( } } - private void tickHeatableBlock(BlockPos pos, @Nullable HeatTierLine.Point point) { + private void tickHeatableBlock(BlockPos pos, HeatTierLine.@Nullable Point point) { this.heatableBlocks.remove(pos); if (!this.level.isLoaded(pos)) return; BlockState heatableState = this.level.getBlockState(pos); @@ -129,7 +129,7 @@ private void tickHeatableBlock(BlockPos pos, @Nullable HeatTierLine.Point point) this.heatableBlocks.add(pos); HeatableBlockEntity heatable = Util.castSafely(this.level.getBlockEntity(pos), HeatableBlockEntity.class).orElse(null); - Optional idOp = HeatRecorder.getId(this.level, pos, heatableState); + Optional idOp = HeatRecorder.getId(this.level, pos, heatableState); if (idOp.isEmpty()) return; HeatTier tier = HeatRecorder.getTier(this.level, pos, heatableState) .orElseThrow(() -> new IllegalStateException("Unexpected non tier heatable block!")); @@ -147,17 +147,14 @@ private void tickHeatableBlock(BlockPos pos, @Nullable HeatTierLine.Point point) // region this.level.updateNeighbourForOutputSignal(pos, deltaBlock); for (Direction direction : Direction.values()) { BlockPos neighbourPos = pos.relative(direction); - if (this.level.isLoaded(neighbourPos)) { - BlockState neighbourState = this.level.getBlockState(neighbourPos); - neighbourState.onNeighborChange(this.level, neighbourPos, pos); - if (neighbourState.isRedstoneConductor(this.level, neighbourPos)) { - neighbourPos = neighbourPos.relative(direction); - neighbourState = this.level.getBlockState(neighbourPos); - if (neighbourState.getWeakChanges(this.level, neighbourPos)) { - this.level.neighborChanged(neighbourState, neighbourPos, deltaBlock, pos, false); - } - } - } + if (!this.level.isLoaded(neighbourPos)) continue; + BlockState neighbourState = this.level.getBlockState(neighbourPos); + neighbourState.onNeighborChange(this.level, neighbourPos, pos); + if (!neighbourState.isRedstoneConductor(this.level, neighbourPos)) continue; + neighbourPos = neighbourPos.relative(direction); + neighbourState = this.level.getBlockState(neighbourPos); + if (!neighbourState.getWeakChanges(this.level, neighbourPos)) continue; + this.level.neighborChanged(neighbourState, neighbourPos, deltaBlock, Orientation.random(this.level.getRandom()), false); } // endregion heatable = heatableEntity; @@ -185,17 +182,20 @@ private void tickHeatableBlock(BlockPos pos, @Nullable HeatTierLine.Point point) // region this.level.updateNeighbourForOutputSignal(pos, prevState.getBlock()); for (Direction direction : Direction.values()) { BlockPos neighbourPos = pos.relative(direction); - if (this.level.isLoaded(neighbourPos)) { - BlockState neighbourState = this.level.getBlockState(neighbourPos); - neighbourState.onNeighborChange(this.level, neighbourPos, pos); - if (neighbourState.isRedstoneConductor(this.level, neighbourPos)) { - neighbourPos = neighbourPos.relative(direction); - neighbourState = this.level.getBlockState(neighbourPos); - if (neighbourState.getWeakChanges(this.level, neighbourPos)) { - this.level.neighborChanged(neighbourState, neighbourPos, prevState.getBlock(), pos, false); - } - } - } + if (!this.level.isLoaded(neighbourPos)) continue; + BlockState neighbourState = this.level.getBlockState(neighbourPos); + neighbourState.onNeighborChange(this.level, neighbourPos, pos); + if (!neighbourState.isRedstoneConductor(this.level, neighbourPos)) continue; + neighbourPos = neighbourPos.relative(direction); + neighbourState = this.level.getBlockState(neighbourPos); + if (!neighbourState.getWeakChanges(this.level, neighbourPos)) continue; + this.level.neighborChanged( + neighbourState, + neighbourPos, + prevState.getBlock(), + Orientation.random(this.level.getRandom()), + false + ); } // endregion } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatCollectorManager.java b/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatCollectorManager.java index cfe8f9c2fe..9012b25938 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatCollectorManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatCollectorManager.java @@ -1,6 +1,7 @@ package dev.dubhe.anvilcraft.api.heat.collector; import dev.anvilcraft.lib.v2.util.Util; +import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.block.entity.HeatCollectorBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -31,8 +32,6 @@ import java.util.Optional; import java.util.Set; -import static dev.dubhe.anvilcraft.api.power.PowerGrid.GRID_TICK; - public class HeatCollectorManager { private static final Map INSTANCES = new HashMap<>(); private static final List SOURCE_ENTRIES = new ArrayList<>(); @@ -53,7 +52,7 @@ public class HeatCollectorManager { registerEntry(HeatSourceEntry.predicate( 4, state -> state.getFluidState().isSourceOfType(Fluids.LAVA), - it -> Blocks.OBSIDIAN.defaultBlockState() + _ -> Blocks.OBSIDIAN.defaultBlockState() )); registerEntry(HeatSourceEntry.simple(4, Blocks.LAVA_CAULDRON, ModBlocks.OBSIDIAN_CAULDRON.get())); @@ -105,9 +104,9 @@ public static void checkWhenPlaceCollector(BlockPlaceContext ctx, BlockPos pos, AABB validRange = AABB.ofSize(pos.getCenter(), 9, 9, 9); for (BlockPos checkedPos : manager.heatCollectors) { if (validRange.contains(checkedPos.getCenter())) { - Optional.ofNullable(ctx.getPlayer()).ifPresent(player -> player.displayClientMessage( + Optional.ofNullable(ctx.getPlayer()).ifPresent(player -> player.sendOverlayMessage( Component.translatable("block.anvilcraft.heat_collector.placement_too_close_to_another") - .withStyle(ChatFormatting.RED), true + .withStyle(ChatFormatting.RED) )); manager.heatCollectors.add(pos); return; @@ -125,10 +124,8 @@ public static void tickAll() { } private void tick() { - if (level.isClientSide) { - return; - } - if (this.level.getGameTime() % GRID_TICK != 0) return; + if (this.level.isClientSide()) return; + if (this.level.getGameTime() % PowerGrid.GRID_TICK != 0) return; List collectors = this.getCollectorsFromNWToSE(); Map> heatSources = new HashMap<>(); for (HeatCollectorBlockEntity collector : collectors) { @@ -169,7 +166,7 @@ private void collectSources(HeatCollectorBlockEntity collector, Map { - heatSourcesCache.computeIfAbsent(new Entry(finalPos, state, entry), it -> new Double2ObjectAVLTreeMap<>()) + heatSourcesCache.computeIfAbsent(new Entry(finalPos, state, entry), _ -> new Double2ObjectAVLTreeMap<>()) .put( Vector3i.distance( finalPos.getX(), finalPos.getY(), finalPos.getZ(), @@ -182,7 +179,7 @@ private void collectSources(HeatCollectorBlockEntity collector, Map new Double2ObjectAVLTreeMap<>()) + .computeIfAbsent(entry.getKey(), _ -> new Double2ObjectAVLTreeMap<>()) .putAll(entry.getValue()); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatSourceEntry.java b/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatSourceEntry.java index 9488aead62..86d9bfeb4d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatSourceEntry.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/HeatSourceEntry.java @@ -64,15 +64,13 @@ public Predicate( @Override public int accepts(BlockState state) { - if (input.test(state)) { - return this.getCharge(); - } - return 0; + if (!this.input.test(state)) return 0; + return this.getCharge(); } @Override public BlockState transform(BlockState state) { - return transformer.apply(state); + return this.transformer.apply(state); } } @@ -88,12 +86,12 @@ public Simple(int charge, Block input, Block output) { @Override public int accepts(BlockState state) { - return state.is(input) ? getCharge() : 0; + return state.is(this.input) ? getCharge() : 0; } @Override public BlockState transform(BlockState state) { - return output.defaultBlockState(); + return this.output.defaultBlockState(); } } @@ -107,12 +105,12 @@ public Always(int charge, Block input) { @Override public int accepts(BlockState state) { - return state.is(input) ? getCharge() : 0; + return state.is(this.input) ? getCharge() : 0; } @Override public BlockState transform(BlockState state) { - return input.defaultBlockState(); + return this.input.defaultBlockState(); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/package-info.java index 95a8d7e107..3871d21a5c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/heat/collector/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.heat.collector; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/heat/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/heat/package-info.java index a9945c430a..d70204f453 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/heat/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/heat/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.heat; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/IItemSubmitExtension.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/IItemSubmitExtension.java new file mode 100644 index 0000000000..a72c8744c3 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/IItemSubmitExtension.java @@ -0,0 +1,11 @@ +package dev.dubhe.anvilcraft.api.injection; + +public interface IItemSubmitExtension { + default void anvilcraft$setHalfTransparent(boolean halfTransparent) { + throw new AssertionError(); + } + + default boolean anvilcraft$isHalfTransparent() { + throw new AssertionError(); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/IBlockExtension.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/IBlockExtension.java index dfc807ae22..f5f4115f02 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/IBlockExtension.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/IBlockExtension.java @@ -19,6 +19,6 @@ private Block self() { * @return True to link blocks */ default boolean anvilcraft$canStickTo(BlockPos pos, BlockState state, BlockPos otherPos, BlockState other) { - return self().canStickTo(state, other); + return this.self().canStickTo(state, other); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/package-info.java index 9d58783d7e..6e00c14e56 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.injection.block; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/IBlockStateExtension.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/IBlockStateExtension.java index fb30803306..f755389b18 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/IBlockStateExtension.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/IBlockStateExtension.java @@ -17,6 +17,6 @@ private BlockState self() { * @return True to link blocks */ default boolean anvilcraft$canStickTo(BlockPos pos, BlockPos otherPos, BlockState other) { - return self().getBlock().anvilcraft$canStickTo(pos, self(), otherPos, other); + return this.self().getBlock().anvilcraft$canStickTo(pos, this.self(), otherPos, other); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/package-info.java index 6724a1fbdb..234c26bab7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/block/state/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.injection.block.state; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/IFallingBlockEntityExtension.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/IFallingBlockEntityExtension.java index a2d75d238b..9c1cbb1a65 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/IFallingBlockEntityExtension.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/IFallingBlockEntityExtension.java @@ -1,7 +1,7 @@ package dev.dubhe.anvilcraft.api.injection.entity; public interface IFallingBlockEntityExtension { - default float anvilcraft$getFallDistance() { + default double anvilcraft$getFallDistance() { throw new AssertionError(); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/ILivingEntityExtension.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/ILivingEntityExtension.java new file mode 100644 index 0000000000..1c795f52a8 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/ILivingEntityExtension.java @@ -0,0 +1,7 @@ +package dev.dubhe.anvilcraft.api.injection.entity; + +public interface ILivingEntityExtension { + default void anvilcraft$setRaged() { + throw new AssertionError(); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/package-info.java index 1383677dbf..bdd88e1442 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/entity/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.injection.entity; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/input/IMouseHandlerExtension.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/input/IMouseHandlerExtension.java similarity index 83% rename from src/main/java/dev/dubhe/anvilcraft/api/input/IMouseHandlerExtension.java rename to src/main/java/dev/dubhe/anvilcraft/api/injection/input/IMouseHandlerExtension.java index 5f9ac76810..6055f02342 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/input/IMouseHandlerExtension.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/input/IMouseHandlerExtension.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.input; +package dev.dubhe.anvilcraft.api.injection.input; import net.minecraft.client.MouseHandler; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/input/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/input/package-info.java new file mode 100644 index 0000000000..d902126f09 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/input/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.api.injection.input; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/package-info.java index 12b27d1ca3..4780b2215f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.injection; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/injection/tooltip/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/injection/tooltip/package-info.java index a417fd3572..59a5c0f112 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/injection/tooltip/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/injection/tooltip/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.injection.tooltip; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/input/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/input/package-info.java deleted file mode 100644 index afbb2651e0..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/input/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.api.input; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/item/IDiskCloneable.java b/src/main/java/dev/dubhe/anvilcraft/api/item/IDiskCloneable.java index a54f763b6b..eeace614fc 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/item/IDiskCloneable.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/item/IDiskCloneable.java @@ -1,13 +1,14 @@ package dev.dubhe.anvilcraft.api.item; import dev.dubhe.anvilcraft.init.item.ModItems; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.BlockHitResult; /** @@ -15,9 +16,9 @@ */ public interface IDiskCloneable { - void storeDiskData(CompoundTag tag); + void storeDiskData(ValueOutput output); - void applyDiskData(CompoundTag data); + void applyDiskData(ValueInput input); /** * 使用磁盘物品与方块进行交互 diff --git a/src/main/java/dev/dubhe/anvilcraft/api/item/IMultipleMaterial.java b/src/main/java/dev/dubhe/anvilcraft/api/item/IMultipleMaterial.java index 13b9a92189..a31c952cf6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/item/IMultipleMaterial.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/item/IMultipleMaterial.java @@ -1,7 +1,7 @@ package dev.dubhe.anvilcraft.api.item; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import java.util.List; @@ -25,5 +25,5 @@ public interface IMultipleMaterial { * @param inputs 其它槽位内的物品 * @return 该槽位应显示的纹理集 */ - List getEmptySlotTextures(ItemStack template, int id, List inputs); + List getEmptySlotTextures(ItemStack template, int id, List inputs); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/item/IPermutationMaterial.java b/src/main/java/dev/dubhe/anvilcraft/api/item/IPermutationMaterial.java index d93c6c144a..52b1f6cc9b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/item/IPermutationMaterial.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/item/IPermutationMaterial.java @@ -1,7 +1,7 @@ package dev.dubhe.anvilcraft.api.item; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import java.util.List; @@ -23,5 +23,5 @@ public interface IPermutationMaterial { * * @return 该槽位应显示的纹理集 */ - List getEmptySlotTextures(); + List getEmptySlotTextures(); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/item/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/item/package-info.java index 5ac4d7e0a2..be2228cb7d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/item/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/item/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.item; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/item/property/IIntegerComponent.java b/src/main/java/dev/dubhe/anvilcraft/api/item/property/IIntegerComponent.java new file mode 100644 index 0000000000..338effec4f --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/item/property/IIntegerComponent.java @@ -0,0 +1,5 @@ +package dev.dubhe.anvilcraft.api.item.property; + +public interface IIntegerComponent { + int value(); +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/FilteredItemStackHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/FilteredItemStackHandler.java index ab9bdec0c7..8d226bfaf3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/FilteredItemStackHandler.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/FilteredItemStackHandler.java @@ -1,38 +1,46 @@ package dev.dubhe.anvilcraft.api.itemhandler; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.anvilcraft.lib.v2.codec.CodecUtil; import dev.dubhe.anvilcraft.block.entity.IFilterBlockEntity; -import dev.dubhe.anvilcraft.item.FilterItem; +import dev.dubhe.anvilcraft.item.utility.FilterItem; import lombok.Getter; -import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtOps; -import net.minecraft.nbt.Tag; import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.items.ItemStackHandler; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.ItemStacksResourceHandler; import java.util.List; import java.util.Optional; @Getter @SuppressWarnings("unused") -public class FilteredItemStackHandler extends ItemStackHandler { - - public static final Codec CODEC = RecordCodecBuilder.create(ins -> ins.group( - Codec.BOOL.fieldOf("filterEnabled").forGetter(o -> o.filterEnabled), - CodecUtil.createOptionalCodec(ItemStack.CODEC) - .listOf() - .fieldOf("filteredItems") - .forGetter(o -> o.filteredItems.stream() - .map(it -> it.isEmpty() ? Optional.empty() : Optional.of(it)) - .toList()), - Codec.BOOL.listOf().fieldOf("disabled").forGetter(o -> o.disabled), - Codec.INT.listOf().fieldOf("slotLimits").forGetter(o -> o.slotLimits)) - .apply(ins, FilteredItemStackHandler::new)); +public class FilteredItemStackHandler extends ItemStacksResourceHandler { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( + Codec.BOOL + .fieldOf("filterEnabled") + .forGetter(FilteredItemStackHandler::isFilterEnabled), + CodecUtil.createOptionalCodec(ItemStack.CODEC) + .listOf() + .fieldOf("filteredItems") + .forGetter(o -> o.filteredItems.stream() + .map(it -> Optional.of(it).filter(ItemStack::isEmpty)) + .toList()), + Codec.BOOL + .listOf() + .fieldOf("disabled") + .forGetter(FilteredItemStackHandler::getDisabled), + Codec.INT + .listOf() + .fieldOf("slotLimits") + .forGetter(FilteredItemStackHandler::getSlotLimits) + ).apply(ins, FilteredItemStackHandler::new)); private boolean filterEnabled = false; private NonNullList filteredItems; @@ -77,8 +85,8 @@ public void setFilterEnabled(boolean filterEnabled) { this.filteredItems.clear(); this.filterEnabled = filterEnabled; if (this.filterEnabled) { - for (int i = 0; i < this.getSlots(); i++) { - ItemStack stack = this.getStackInSlot(i); + for (int i = 0; i < this.size(); i++) { + ItemStack stack = this.getStackFrom(this.getResource(i), this.getAmountAsInt(i)); if (stack.isEmpty()) continue; this.setFilter(i, stack); } @@ -86,17 +94,17 @@ public void setFilterEnabled(boolean filterEnabled) { } @Override - public boolean isItemValid(int slot, ItemStack stack) { - if (!this.filterEnabled) return !this.isSlotDisabled(slot); - return !this.isSlotDisabled(slot) && this.isFiltered(slot, stack); + public boolean isValid(int index, ItemResource resource) { + if (!this.filterEnabled) return !this.isSlotDisabled(index); + return !this.isSlotDisabled(index) && this.isFiltered(index, resource.toStack()); } @Override - public void setStackInSlot(int slot, ItemStack stack) { - if (!filterEnabled && !stack.isEmpty()) { - this.setSlotDisabled(slot, false); + public void set(int index, ItemResource resource, int amount) { + if (!this.filterEnabled && !resource.isEmpty()) { + this.setSlotDisabled(index, false); } - super.setStackInSlot(slot, stack); + super.set(index, resource, amount); } /** @@ -106,14 +114,9 @@ public void setStackInSlot(int slot, ItemStack stack) { * @return 指定槽位是否被禁用 */ public boolean isSlotDisabled(int slot) { - if (!this.filterEnabled) { - return this.disabled.get(slot); - } else { - return this.disabled.get(slot) - || (getStackInSlot(slot).isEmpty() - && this.filteredItems.get(slot).isEmpty() - ); - } + if (!this.filterEnabled) return this.disabled.get(slot); + return this.disabled.get(slot) + || (this.getResource(slot).isEmpty() && this.filteredItems.get(slot).isEmpty()); } /** @@ -210,76 +213,71 @@ public void setSlotLimit(int slot, int limit) { } @Override - public CompoundTag serializeNBT(HolderLookup.Provider provider) { - CompoundTag compoundTag = new CompoundTag(); - compoundTag.putBoolean("FilterEnabled", this.filterEnabled); - ListTag inventory = new ListTag(); - int slots = this.getSlots(); - compoundTag.putInt("Size", slots); + public void serialize(ValueOutput output) { + output.putBoolean("FilterEnabled", this.filterEnabled); + int slots = this.size(); + output.putInt("Size", slots); + ValueOutput.ValueOutputList inventory = output.childrenList(""); for (int slot = 0; slot < slots; slot++) { - CompoundTag inventoryEntry = new CompoundTag(); + ValueOutput inventoryEntry = inventory.addChild(); + inventoryEntry.putInt("Slot", slot); - ItemStack stack = this.getStackInSlot(slot); + + ItemStack stack = this.getStackFrom(this.getResource(slot), this.getAmountAsInt(slot)); inventoryEntry.putBoolean("IsEmptySlot", stack.isEmpty()); - if (!stack.isEmpty()) { - Tag itemTag = stack.save(provider); - inventoryEntry.put("SlotItem", itemTag); - } + if (!stack.isEmpty()) inventoryEntry.store("SlotItem", ItemStack.OPTIONAL_CODEC, stack); ItemStack filtering = this.getFilter(slot); - inventoryEntry.putBoolean("SlotFilterEnabled", !filtering.isEmpty()); if (!filtering.isEmpty()) { - Tag filterItemTag = filtering.save(provider); - inventoryEntry.put("SlotFilterItem", filterItemTag); + inventoryEntry.store("SlotFilterItem", ItemStack.OPTIONAL_CODEC, stack); } inventoryEntry.putBoolean("Disabled", this.disabled.get(slot)); - inventoryEntry.putInt("SlotLimit", this.getSlotLimit(slot)); - inventory.add(inventoryEntry); + inventoryEntry.putInt("SlotLimit", this.getSlotLimit(slot)); } - compoundTag.put("Inventory", inventory); - return compoundTag; } @Override - public void deserializeNBT(HolderLookup.Provider provider, CompoundTag tag) { - if (!tag.contains("Inventory")) return; - this.filterEnabled = tag.getBoolean("FilterEnabled"); - ListTag inventory = (ListTag) tag.get("Inventory"); - int size = tag.getInt("Size"); - for (Tag entry : inventory) { - CompoundTag inventoryEntry = (CompoundTag) entry; - int slot = inventoryEntry.getInt("Slot"); - boolean isEmptySlot = inventoryEntry.getBoolean("IsEmptySlot"); + public void deserialize(ValueInput input) { + Optional inventoryOp = input.childrenList("Inventory"); + if (inventoryOp.isEmpty()) return; + this.filterEnabled = input.getBooleanOr("FilterEnabled", false); + ValueInput.ValueInputList inventory = inventoryOp.get(); + int size = input.getIntOr("Size", -1); + if (size < 0) return; + for (ValueInput entry : inventory) { + int slot = entry.getIntOr("Slot", -1); + if (slot < 0) continue; + + boolean isEmptySlot = entry.getBooleanOr("IsEmptySlot", true); if (!isEmptySlot) { - CompoundTag itemTag = inventoryEntry.getCompound("SlotItem"); - this.stacks.set(slot, ItemStack.parseOptional(provider, itemTag)); + entry.read("SlotItem", ItemStack.OPTIONAL_CODEC).ifPresent(stack -> this.stacks.set(slot, stack)); } - boolean slotFilterEnabled = inventoryEntry.getBoolean("SlotFilterEnabled"); + + boolean slotFilterEnabled = entry.getBooleanOr("SlotFilterEnabled", false); if (slotFilterEnabled) { - CompoundTag filterItemTag = inventoryEntry.getCompound("SlotFilterItem"); - this.filteredItems.set(slot, ItemStack.parseOptional(provider, filterItemTag)); - } - this.disabled.set(slot, inventoryEntry.getBoolean("Disabled")); - if (inventoryEntry.contains("SlotLimit")) { - this.slotLimits.set(slot, inventoryEntry.getInt("SlotLimit")); - } else { - this.slotLimits.set(slot, IFilterBlockEntity.DEFAULT_SLOT_LIMIT); + entry.read("SlotFilterItem", ItemStack.OPTIONAL_CODEC).ifPresent(stack -> this.filteredItems.set(slot, stack)); } + + this.disabled.set(slot, entry.getBooleanOr("Disabled", false)); + + this.slotLimits.set(slot, entry.getIntOr("SlotLimit", IFilterBlockEntity.DEFAULT_SLOT_LIMIT)); } } - public CompoundTag serializeFiltering() { - return (CompoundTag) CODEC.encodeStart(NbtOps.INSTANCE, this).getOrThrow(); + public void serializeFiltering(ValueOutput output) { + output.store((CompoundTag) CODEC.codec().encodeStart(NbtOps.INSTANCE, this).getOrThrow()); } - public void deserializeFiltering(CompoundTag tag) { - FilteredItemStackHandler handler = - CODEC.decode(NbtOps.INSTANCE, tag).getOrThrow().getFirst(); - if (this.getSlots() != handler.getSlots()) throw new IllegalArgumentException("Depository size mismatch"); - this.filterEnabled = tag.getBoolean("filterEnabled"); + public void deserializeFiltering(ValueInput input) { + @SuppressWarnings("deprecation") + Optional handlerOp = input.read(CODEC); + if (handlerOp.isEmpty()) return; + FilteredItemStackHandler handler = handlerOp.get(); + if (this.size() != handler.size()) throw new IllegalArgumentException("Depository size mismatch"); + this.filterEnabled = input.getBooleanOr("filterEnabled", false); int size = handler.filteredItems.size(); this.filteredItems = NonNullList.of(ItemStack.EMPTY, handler.filteredItems.toArray(new ItemStack[size])); this.disabled = handler.disabled; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/HoneyCauldronWrapper.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/HoneyCauldronWrapper.java deleted file mode 100644 index 9e1985a47b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/HoneyCauldronWrapper.java +++ /dev/null @@ -1,76 +0,0 @@ -package dev.dubhe.anvilcraft.api.itemhandler; - -import dev.dubhe.anvilcraft.block.HoneyCauldronBlock; -import net.minecraft.core.BlockPos; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.items.IItemHandler; - -public class HoneyCauldronWrapper implements IItemHandler { - private final Level level; - private final BlockPos pos; - - public HoneyCauldronWrapper(Level level, BlockPos pos) { - this.level = level; - this.pos = pos; - } - - @Override - public int getSlots() { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) { - if (slot == 0) { - BlockState state = level.getBlockState(pos); - if (state.getBlock() instanceof HoneyCauldronBlock && level.getBlockState(pos).getValue(HoneyCauldronBlock.LEVEL) == 4) { - return new ItemStack(Items.HONEY_BLOCK, 1); - } - } - return ItemStack.EMPTY; - } - - @Override - public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { - return stack; - } - - @Override - public ItemStack extractItem(int slot, int amount, boolean simulate) { - if (amount <= 0) return ItemStack.EMPTY; - if (slot == 0) { - ItemStack stackInSlot = getStackInSlot(slot); - if (!stackInSlot.isEmpty()) { - if (simulate) { - return stackInSlot.copyWithCount(1); - } else { - ItemStack copy = stackInSlot.copy(); - stackInSlot.shrink(1); - updateWorld(); - return copy; - } - } else { - return ItemStack.EMPTY; - } - } - return ItemStack.EMPTY; - } - - @Override - public int getSlotLimit(int slot) { - return 1; - } - - @Override - public boolean isItemValid(int slot, ItemStack stack) { - return false; - } - - private void updateWorld() { - level.setBlockAndUpdate(pos, Blocks.CAULDRON.defaultBlockState()); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemHandlerHolder.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemHandlerHolder.java deleted file mode 100644 index 99810aaa2b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemHandlerHolder.java +++ /dev/null @@ -1,11 +0,0 @@ -package dev.dubhe.anvilcraft.api.itemhandler; - -import net.neoforged.neoforge.items.IItemHandler; - -/** - * 持有ItemHandler的 - */ -public interface IItemHandlerHolder { - - IItemHandler getItemHandler(); -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemResourceHandlerHolder.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemResourceHandlerHolder.java new file mode 100644 index 0000000000..806e747284 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/IItemResourceHandlerHolder.java @@ -0,0 +1,11 @@ +package dev.dubhe.anvilcraft.api.itemhandler; + +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; + +/** + * 持有ItemHandler的 + */ +public interface IItemResourceHandlerHolder { + ResourceHandler getItemHandler(); +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/InputRefusingItemHandlerWrapper.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/InputRefusingItemHandlerWrapper.java index 34661aa2e1..88cc08609e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/InputRefusingItemHandlerWrapper.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/InputRefusingItemHandlerWrapper.java @@ -1,46 +1,62 @@ package dev.dubhe.anvilcraft.api.itemhandler; -import net.minecraft.world.item.ItemStack; -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.TransactionContext; -public class InputRefusingItemHandlerWrapper implements IItemHandler { - private final IItemHandler delegate; +public class InputRefusingItemHandlerWrapper implements ResourceHandler { + private final ResourceHandler delegate; - public InputRefusingItemHandlerWrapper(IItemHandler delegate) { + public InputRefusingItemHandlerWrapper(ResourceHandler delegate) { this.delegate = delegate; } - @Override - public int getSlots() { - return delegate.getSlots(); + public static ResourceHandler wrap(ResourceHandler ih) { + return new InputRefusingItemHandlerWrapper(ih); } @Override - public ItemStack getStackInSlot(int i) { - return delegate.getStackInSlot(i); + public int size() { + return this.delegate.size(); } @Override - public ItemStack insertItem(int i, ItemStack itemStack, boolean b) { - return itemStack; + public ItemResource getResource(int index) { + return this.delegate.getResource(index); } @Override - public ItemStack extractItem(int i, int i1, boolean b) { - return delegate.extractItem(i, i1, b); + public long getAmountAsLong(int index) { + return this.delegate.getAmountAsLong(index); } @Override - public int getSlotLimit(int i) { - return delegate.getSlotLimit(i); + public long getCapacityAsLong(int index, ItemResource resource) { + return this.delegate.getCapacityAsLong(index, resource); } @Override - public boolean isItemValid(int i, ItemStack itemStack) { + public boolean isValid(int index, ItemResource resource) { return false; } - public static IItemHandler wrap(IItemHandler ih) { - return new InputRefusingItemHandlerWrapper(ih); + @Override + public int insert(int index, ItemResource resource, int amount, TransactionContext transaction) { + return 0; + } + + @Override + public int insert(ItemResource resource, int amount, TransactionContext transaction) { + return 0; + } + + @Override + public int extract(int index, ItemResource resource, int amount, TransactionContext transaction) { + return this.delegate.extract(index, resource, amount, transaction); + } + + @Override + public int extract(ItemResource resource, int amount, TransactionContext transaction) { + return this.delegate.extract(resource, amount, transaction); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/ItemHandlerUtil.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/ItemHandlerUtil.java index b2ce955c2d..11cbee6f59 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/ItemHandlerUtil.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/ItemHandlerUtil.java @@ -1,9 +1,9 @@ package dev.dubhe.anvilcraft.api.itemhandler; +import com.google.common.collect.ImmutableList; import dev.dubhe.anvilcraft.AnvilCraft; +import dev.dubhe.anvilcraft.block.utility.BlockPlacerBlock; import dev.dubhe.anvilcraft.util.AnvilUtil; -import it.unimi.dsi.fastutil.objects.Object2IntMap; -import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; @@ -15,165 +15,136 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.capabilities.Capabilities; -import net.neoforged.neoforge.items.IItemHandler; -import net.neoforged.neoforge.items.ItemHandlerHelper; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.access.ItemAccess; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jetbrains.annotations.Unmodifiable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.List; -import java.util.function.Predicate; - -import static dev.dubhe.anvilcraft.block.BlockPlacerBlock.ORIENTATION; +import java.util.function.BiPredicate; public class ItemHandlerUtil { public static boolean exportToTarget( - IItemHandler source, + ResourceHandler source, int maxAmountWeight, - Predicate predicate, - @Nullable IItemHandler target + BiPredicate predicate, + @Nullable ResourceHandler target ) { boolean success = false; - ItemStack filterStack = null; - boolean lockFilterItem = false; int maxAmount = maxAmountWeight; - outerLoop: - for (int srcIndex = 0; srcIndex < source.getSlots(); srcIndex++) { - ItemStack sourceStack = source.extractItem(srcIndex, Integer.MAX_VALUE, true); - if (sourceStack.isEmpty() || !predicate.test(sourceStack)) continue; - if (filterStack == null) { - filterStack = sourceStack.copy(); - maxAmount = (int) (maxAmountWeight / 64f * sourceStack.getMaxStackSize()); - } else if (!ItemStack.isSameItemSameComponents(filterStack, sourceStack)) { - continue; - } - for (int i = 0; i < maxAmount; i++) { - ItemStack remainder = ItemHandlerHelper.insertItem(target, sourceStack, true); - int amountToInsert = sourceStack.getCount() - remainder.getCount(); - sourceStack = remainder; - if (amountToInsert > 0) { - ItemStack extracted = source.extractItem(srcIndex, Math.min(maxAmount, amountToInsert), false); - ItemStack actualRemainder = ItemHandlerHelper.insertItem(target, extracted, false); - if (!actualRemainder.isEmpty()) { - source.insertItem(srcIndex, actualRemainder, false); - amountToInsert -= actualRemainder.getCount(); - } + try (Transaction root = Transaction.openRoot()) { + for (int srcIndex = 0; srcIndex < source.size(); srcIndex++) { + ItemResource resource = source.getResource(srcIndex); + if (resource.isEmpty()) continue; + try (Transaction transaction = Transaction.open(root)) { + int extracted = source.extract(srcIndex, resource, maxAmount, transaction); + if (extracted <= 0 || !predicate.test(resource, extracted)) continue; + int inserted = target.insert(resource, extracted, transaction); + if (inserted == 0) continue; success = true; - lockFilterItem = true; - maxAmount -= amountToInsert; - if (maxAmount <= 0) break outerLoop; - if (remainder.getCount() == 0) break; - } else { - if (!lockFilterItem) filterStack = null; - break; + maxAmount -= inserted; + if (maxAmount < 0) break; + transaction.commit(); } } + root.commit(); } return success; } public static boolean importFromTarget( - IItemHandler target, + ResourceHandler target, int maxAmountWeight, - Predicate predicate, - IItemHandler source + BiPredicate predicate, + ResourceHandler source ) { - boolean success = false; - ItemStack filterStack = null; - boolean lockFilterItem = false; - int maxAmount = maxAmountWeight; - outerLoop: - for (int srcIndex = 0; srcIndex < source.getSlots(); srcIndex++) { - ItemStack sourceStack = source.extractItem(srcIndex, Integer.MAX_VALUE, true); - if (sourceStack.isEmpty() || !predicate.test(sourceStack)) continue; - if (filterStack == null) { - filterStack = sourceStack.copy(); - maxAmount = (int) (maxAmountWeight / 64f * sourceStack.getMaxStackSize()); - } else if (!ItemStack.isSameItemSameComponents(filterStack, sourceStack)) { - continue; - } - for (int i = 0; i < maxAmount; i++) { - ItemStack remainder = ItemHandlerHelper.insertItem(target, sourceStack, true); - int amountToInsert = sourceStack.getCount() - remainder.getCount(); - if (amountToInsert > 0) { - ItemStack extracted = source.extractItem(srcIndex, Math.min(maxAmount, amountToInsert), false); - ItemStack actualRemainder = ItemHandlerHelper.insertItem(target, extracted, false); - if (!actualRemainder.isEmpty()) { - source.insertItem(srcIndex, actualRemainder, false); - amountToInsert -= actualRemainder.getCount(); - } - success = true; - lockFilterItem = true; - maxAmount -= amountToInsert; - if (maxAmount <= 0) break outerLoop; - if (remainder.getCount() == 0) break; - } else { - if (!lockFilterItem) filterStack = null; - break; - } - } - } - return success; + return ItemHandlerUtil.exportToTarget(source, maxAmountWeight, predicate, target); } - public static void exportAllToTarget(IItemHandler source, Predicate predicate, IItemHandler target) { - for (int srcIndex = 0; srcIndex < source.getSlots(); srcIndex++) { - ItemStack sourceStack = source.extractItem(srcIndex, Integer.MAX_VALUE, true); - if (sourceStack.isEmpty() || !predicate.test(sourceStack)) continue; - - ItemStack remainder = ItemHandlerHelper.insertItem(target, sourceStack, true); - - int amountToInsert = sourceStack.getCount() - remainder.getCount(); - if (amountToInsert > 0) { - sourceStack = source.extractItem(srcIndex, amountToInsert, false); - ItemHandlerHelper.insertItem(target, sourceStack, false); + public static void exportAllToTarget( + ResourceHandler source, + BiPredicate predicate, + ResourceHandler target + ) { + try (Transaction root = Transaction.openRoot()) { + for (int srcIndex = 0; srcIndex < source.size(); srcIndex++) { + ItemResource resource = source.getResource(srcIndex); + try (Transaction transaction = Transaction.open(root)) { + int extracted = source.extract(srcIndex, resource, Integer.MAX_VALUE, transaction); + if (extracted <= 0 || predicate.test(resource, extracted)) continue; + int inserted = target.insert(resource, extracted, transaction); + if (inserted == 0) continue; + transaction.commit(); + } } + root.commit(); } } - public static void exportContentsToItemHandlers(IItemHandler source, @Nullable List itemHandlerList) { + public static void exportContentsToItemHandlers( + ResourceHandler source, + @Nullable List> itemHandlerList + ) { if (itemHandlerList == null) return; - for (IItemHandler target : itemHandlerList) { - exportAllToTarget(source, stack -> true, target); + for (ResourceHandler target : itemHandlerList) { + ItemHandlerUtil.exportAllToTarget(source, (_, _) -> true, target); } } - public static void dropAllToPos(IItemHandler source, Level level, Vec3 pos) { + public static void dropAllToPos(ResourceHandler source, Level level, Vec3 pos) { List items = new ArrayList<>(); - for (int slot = 0; slot < source.getSlots(); slot++) { - ItemStack stack = source.extractItem(slot, Integer.MAX_VALUE, false); - if (!stack.isEmpty()) items.add(stack); + try (Transaction root = Transaction.openRoot()) { + for (int srcIndex = 0; srcIndex < source.size(); srcIndex++) { + ItemResource resource = source.getResource(srcIndex); + if (resource.isEmpty()) continue; + try (Transaction transaction = Transaction.open(root)) { + int extracted = source.extract(srcIndex, resource, Integer.MAX_VALUE, transaction); + if (extracted != 0) items.add(resource.toStack(extracted)); + } + } } AnvilUtil.dropItems(items, level, pos); } - public static @Nullable IItemHandler getSourceItemHandler(BlockPos inputBlockPos, Direction context, @Nullable Level level) { + public static @Nullable ResourceHandler getSourceItemHandler( + BlockPos inputBlockPos, + Direction context, + @Nullable Level level + ) { if (level == null) return null; - IItemHandler itemHandler = level.getCapability( - Capabilities.ItemHandler.BLOCK, + ResourceHandler itemHandler = level.getCapability( + Capabilities.Item.BLOCK, inputBlockPos, context ); if (itemHandler != null) return itemHandler; AABB aabb = new AABB(inputBlockPos); List entities = level.getEntitiesOfClass( - Entity.class, aabb, e -> e instanceof ContainerEntity && !((ContainerEntity) e).isEmpty()) - .stream() - .map(it -> (ContainerEntity) it) - .toList(); + Entity.class, + aabb, + e -> e instanceof ContainerEntity && !((ContainerEntity) e).isEmpty() + ).stream().map(it -> (ContainerEntity) it).toList(); if (!entities.isEmpty()) { itemHandler = ((Entity) entities.getFirst()).getCapability( - Capabilities.ItemHandler.ENTITY, + Capabilities.Item.ENTITY, null ); } return itemHandler; } - public static @Nullable List getTargetItemHandlerList(BlockPos inputBlockPos, Direction context, @Nullable Level level) { + public static @Nullable List> getTargetItemHandlerList( + BlockPos inputBlockPos, + Direction context, + @Nullable Level level + ) { if (level == null) return null; - List list = new ArrayList<>(); - IItemHandler input = level.getCapability( - Capabilities.ItemHandler.BLOCK, + List> list = new ArrayList<>(); + ResourceHandler input = level.getCapability( + Capabilities.Item.BLOCK, inputBlockPos, context ); @@ -183,41 +154,34 @@ public static void dropAllToPos(IItemHandler source, Level level, Vec3 pos) { } AABB aabb = new AABB(inputBlockPos); list = level.getEntitiesOfClass( - Entity.class, aabb, e -> e instanceof ContainerEntity) - .stream() - .map(e -> e.getCapability( - Capabilities.ItemHandler.ENTITY, - null - )) - .toList(); + Entity.class, + aabb, + e -> e instanceof ContainerEntity + ).stream().map(e -> e.getCapability(Capabilities.Item.ENTITY, null)).toList(); return list; } - public static int countItemsInHandler(IItemHandler handler) { + public static int countItemsInHandler(ResourceHandler handler) { int count = 0; - for (int i = 0; i < handler.getSlots(); i++) { - count += handler.getStackInSlot(i).getCount(); + for (int i = 0; i < handler.size(); i++) { + count += handler.getAmountAsInt(i); } return count; } - public static Object2IntMap mergeHandlerItems(IItemHandler handler) { - Object2IntMap items = new Object2IntOpenHashMap<>(); - for (int i = 0; i < handler.getSlots(); i++) { - ItemStack stack = handler.getStackInSlot(i); - items.mergeInt(stack.getItem(), stack.getCount(), Integer::sum); - } - return items; - } - @Nullable - public static IItemHandler getSourceItemHandlerRecursive(Block source, BlockPos inputPos, Direction context, @Nullable Level level) { + public static ResourceHandler getSourceItemHandlerRecursive( + Block source, + BlockPos inputPos, + Direction context, + @Nullable Level level + ) { int i = 0; do { if (level == null) return null; if ( level.getBlockState(inputPos).is(source) - && level.getBlockState(inputPos).getValue(ORIENTATION).getDirection() == context + && level.getBlockState(inputPos).getValue(BlockPlacerBlock.ORIENTATION).getDirection() == context ) { i++; inputPos = inputPos.relative(context.getOpposite()); @@ -228,35 +192,66 @@ public static IItemHandler getSourceItemHandlerRecursive(Block source, BlockPos return null; } - public static ItemStack insertItem(@Nullable IItemHandler dest, ItemStack stack, boolean simulate) { - if (dest == null || stack.isEmpty()) { - return stack; - } + public static ItemStack insertItem(@Nullable ResourceHandler dest, ItemStack stack, boolean simulate) { + if (dest == null || stack.isEmpty()) return stack; if (dest instanceof PollableFilteredItemStackHandler pollable) { - for (int i = 0; i < dest.getSlots(); i++) { - stack = pollable.insertItemNoPolling(i, stack, simulate); - if (stack.isEmpty()) { - return ItemStack.EMPTY; + try (Transaction root = Transaction.openRoot()) { + for (int i = 0; i < dest.size(); i++) { + try (Transaction transaction = Transaction.open(root)) { + stack.setCount(pollable.insertNoPolling(i, pollable.getResourceFrom(stack), stack.getCount(), transaction)); + if (stack.isEmpty()) { + if (!simulate) transaction.commit(); + return ItemStack.EMPTY; + } + if (!simulate) transaction.commit(); + } } + if (!simulate) root.commit(); } - - return stack; } else { - return ItemHandlerHelper.insertItem(dest, stack, simulate); + try (Transaction transaction = Transaction.openRoot()) { + int stackCount = stack.getCount(); + int inserted = dest.insert(ItemResource.of(stack.getItem(), stack.getComponentsPatch()), stackCount, transaction); + stack.setCount(inserted); + if (!simulate) transaction.commit(); + } } + return stack; } - public static boolean isEmptyContainer(@Nullable IItemHandler handler) { + public static boolean isEmptyContainer(@Nullable ResourceHandler handler) { if (handler != null) { - for (int i = 0; i < handler.getSlots(); i++) { - if (!handler.getStackInSlot(i).isEmpty()) return true; + for (int i = 0; i < handler.size(); i++) { + if (!handler.getResource(i).isEmpty()) return false; } } - return false; + return true; } public static boolean isEmptyContainer(ItemStack stack) { - return ItemHandlerUtil.isEmptyContainer(stack.getCapability(Capabilities.ItemHandler.ITEM)); + return ItemHandlerUtil.isEmptyContainer(stack.getCapability(Capabilities.Item.ITEM, ItemAccess.forStack(stack))); + } + + public static int hash(ResourceHandler handler) { + int hash = 0; + for (int i = 0; i < handler.size(); i++) { + ItemStack stack = handler.getResource(i).toStack(); + if (stack.isEmpty()) continue; + hash *= 31; + hash += Item.getId(stack.getItem()) + stack.getDamageValue(); + } + return hash; + } + + public static @Unmodifiable List getNonEmptyItemsFromHandler(ResourceHandler handler) { + ImmutableList.Builder builder = ImmutableList.builder(); + for (int i = 0; i < handler.size(); i++) { + ItemResource resource = handler.getResource(i); + ItemStack stack = new ItemStack(resource.typeHolder(), handler.getAmountAsInt(i), resource.getComponentsPatch()); + if (stack.isEmpty()) continue; + builder.add(stack); + } + return builder.build(); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/OverLimitItemHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/OverLimitItemHandler.java index 5456aee9fc..ef09db7864 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/OverLimitItemHandler.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/OverLimitItemHandler.java @@ -1,191 +1,71 @@ package dev.dubhe.anvilcraft.api.itemhandler; import dev.anvilcraft.lib.v2.util.stack.UnlimitedItemStack; -import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.Tag; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.common.util.INBTSerializable; -import net.neoforged.neoforge.items.IItemHandler; -import net.neoforged.neoforge.items.IItemHandlerModifiable; +import net.neoforged.neoforge.transfer.StacksResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; -public class OverLimitItemHandler implements IItemHandler, IItemHandlerModifiable, INBTSerializable { +public class OverLimitItemHandler extends StacksResourceHandler { private final int baseLimit; - private NonNullList stacks; public OverLimitItemHandler(int baseLimit) { this(baseLimit, 1); } public OverLimitItemHandler(int baseLimit, int size) { - this.stacks = NonNullList.withSize(size, UnlimitedItemStack.EMPTY); + super(NonNullList.withSize(size, UnlimitedItemStack.EMPTY), UnlimitedItemStack.EMPTY, UnlimitedItemStack.CODEC); this.baseLimit = baseLimit; } public OverLimitItemHandler(int baseLimit, NonNullList stacks) { - this.stacks = NonNullList.createWithCapacity(stacks.size()); - for (int i = 0, stacksSize = stacks.size(); i < stacksSize; i++) { - this.stacks.add(i, new UnlimitedItemStack(stacks.get(i))); - } + super(OverLimitItemHandler.transform(stacks), UnlimitedItemStack.EMPTY, UnlimitedItemStack.CODEC); this.baseLimit = baseLimit; } public OverLimitItemHandler(NonNullList stacks, int baseLimit) { - this.stacks = NonNullList.copyOf(stacks); + super(stacks, UnlimitedItemStack.EMPTY, UnlimitedItemStack.CODEC); this.baseLimit = baseLimit; } - @Override - public int getSlots() { - return this.stacks.size(); - } - - @Override - public ItemStack getStackInSlot(int slot) { - return this.getUnlimitedStackInSlot(slot).toStack(); - } - - public UnlimitedItemStack getUnlimitedStackInSlot(int slot) { - return this.stacks.get(slot); - } - - @Override - public void setStackInSlot(int slot, ItemStack stack) { - this.stacks.set(slot, new UnlimitedItemStack(stack)); - } - - public void setUnlimitedStackInSlot(int slot, UnlimitedItemStack stack) { - this.stacks.set(slot, stack); - } - - @Override - public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { - if (stack.isEmpty()) return ItemStack.EMPTY; - if (!this.isItemValid(slot, stack)) return stack; - this.validateSlotIndex(slot); - - UnlimitedItemStack existing = this.stacks.get(slot); - - int limit = this.getSlotLimit(slot); - if (!existing.isEmpty()) { - if (!existing.isSameItemSameComponents(stack)) return stack; - limit -= existing.getCount(); - } - if (limit <= 0) return stack; - - boolean reachedLimit = stack.getCount() > limit; - if (!simulate) { - int maxLimit = this.getSlotLimit(slot); - if (existing.isEmpty()) { - this.stacks.set(slot, reachedLimit ? new UnlimitedItemStack(stack, maxLimit) : new UnlimitedItemStack(stack)); - } else { - existing.grow(reachedLimit ? maxLimit : stack.getCount()); - } - this.onContentsChanged(slot); - } - - return reachedLimit ? stack.copyWithCount(stack.getCount() - limit) : ItemStack.EMPTY; - } - - @Override - public ItemStack extractItem(int slot, int amount, boolean simulate) { - if (amount == 0) return ItemStack.EMPTY; - this.validateSlotIndex(slot); - - UnlimitedItemStack existing = this.stacks.get(slot); - if (existing.isEmpty()) return ItemStack.EMPTY; - - int toExtract = Math.min(amount, existing.getStack().getMaxStackSize()); - - if (existing.getCount() <= toExtract) { - if (!simulate) { - this.stacks.set(slot, UnlimitedItemStack.EMPTY); - this.onContentsChanged(slot); - } - return existing.toStack(); - } else { - if (!simulate) { - this.stacks.set(slot, existing.copyWithCount(existing.getCount() - toExtract)); - this.onContentsChanged(slot); - } - return existing.copyWithCount(toExtract).toStack(); + private static NonNullList transform(NonNullList stacks) { + NonNullList result = NonNullList.createWithCapacity(stacks.size()); + for (int i = 0, stacksSize = stacks.size(); i < stacksSize; i++) { + result.add(i, new UnlimitedItemStack(stacks.get(i))); } + return result; } @Override - public int getSlotLimit(int slot) { - return this.stacks.get(slot).getStack().getMaxStackSize() * this.baseLimit; + protected ItemResource getResourceFrom(UnlimitedItemStack stack) { + return ItemResource.of(stack.getItem(), stack.getComponentsPatch()); } @Override - public boolean isItemValid(int slot, ItemStack stack) { - return true; - } - - public boolean isEmpty() { - for (UnlimitedItemStack stack : this.stacks) { - if (!stack.isEmpty()) return false; - } - return true; + protected int getAmountFrom(UnlimitedItemStack stack) { + return stack.getCount(); } @Override - public CompoundTag serializeNBT(HolderLookup.Provider provider) { - ListTag itemsTag = new ListTag(); - for (int i = 0; i < this.stacks.size(); i++) { - UnlimitedItemStack stack = this.stacks.get(i); - if (stack.isEmpty()) continue; - CompoundTag itemTag = new CompoundTag(); - itemTag.putInt("Slot", i); - itemTag.merge(stack.serializeNBT(provider)); - itemsTag.add(itemTag); - } - CompoundTag nbt = new CompoundTag(); - nbt.put("Items", itemsTag); - nbt.putInt("Size", this.stacks.size()); - return nbt; + protected UnlimitedItemStack getStackFrom(ItemResource resource, int amount) { + return new UnlimitedItemStack(resource.toStack(), amount); } @Override - public void deserializeNBT(HolderLookup.Provider provider, CompoundTag nbt) { - this.setSize(nbt.contains("Size", Tag.TAG_INT) ? nbt.getInt("Size") : this.stacks.size()); - ListTag itemsTag = nbt.getList("Items", Tag.TAG_COMPOUND); - for (int i = 0; i < itemsTag.size(); i++) { - CompoundTag itemTag = itemsTag.getCompound(i); - int slot = itemTag.getInt("Slot"); - - if (slot < 0 || slot >= this.stacks.size()) continue; - UnlimitedItemStack.parse(provider, itemTag).ifPresent(stack -> this.stacks.set(slot, stack)); - } - this.onLoad(); - } - - public void setSize(int size) { - this.stacks = NonNullList.withSize(size, UnlimitedItemStack.EMPTY); - } - - protected void validateSlotIndex(int slot) { - if (slot < 0 || slot >= this.stacks.size()) { - throw new RuntimeException("Slot " + slot + " not in valid range - [0," + this.stacks.size() + ")"); - } - } - - protected void onLoad() { - } - - protected void onContentsChanged(int slot) { + protected UnlimitedItemStack copyOf(UnlimitedItemStack stack) { + return stack.copy(); } @Override - public boolean equals(Object o) { - if (!(o instanceof OverLimitItemHandler that)) return false; - return this.baseLimit == that.baseLimit && UnlimitedItemStack.listMatches(this.stacks, that.stacks); + protected int getCapacity(int index, ItemResource resource) { + return resource.isEmpty() + ? this.getResource(index).getMaxStackSize() * this.baseLimit + : Item.ABSOLUTE_MAX_STACK_SIZE * this.baseLimit; } - @Override - public int hashCode() { - return this.baseLimit * 31 + UnlimitedItemStack.hashStackList(this.stacks); + public UnlimitedItemStack peek(int index) { + ItemResource resource = this.getResource(index); + return new UnlimitedItemStack(resource.typeHolder(), this.getAmountAsInt(index), resource.getComponentsPatch()); } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java index 6d483d95ed..ad0ce74f40 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java @@ -1,8 +1,13 @@ package dev.dubhe.anvilcraft.api.itemhandler; +import dev.dubhe.anvilcraft.mixin.accessor.StacksResourceHandlerAccessor; import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.transfer.TransferPreconditions; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; import java.util.List; +import java.util.Objects; public class PollableFilteredItemStackHandler extends FilteredItemStackHandler { public PollableFilteredItemStackHandler(int size) { @@ -10,49 +15,37 @@ public PollableFilteredItemStackHandler(int size) { } @Override - public boolean isItemValid(int slot, ItemStack stack) { - return getEmptyOrSmallerSlot(stack) == slot && super.isItemValid(slot, stack); + public boolean isValid(int index, ItemResource resource) { + return this.getEmptyOrSmallerSlot(resource) == index && super.isValid(index, resource); } - @Override - public boolean isFiltered(int slot, ItemStack stack) { - ItemStack filter = this.getFilteredItems().get(slot); - return filter.isEmpty() || ItemStack.isSameItem(filter, stack); - } - - private int getEmptyOrSmallerSlot(ItemStack stack) { - int slotCount = this.getSlots(); - int slot = -1; + private int getEmptyOrSmallerSlot(ItemResource resource) { + int size = this.size(); + int valid = -1; int countInSlot = Integer.MAX_VALUE; - for (int index = slotCount - 1; index >= 0; index--) { - if (this.isSlotDisabled(index)) continue; - ItemStack stackInSlot = this.getStackInSlot(index); - if (this.isSlotDisabled(index)) continue; - if (!this.isFiltered(index, stack)) continue; - if (stackInSlot.isEmpty()) { - slot = index; - countInSlot = 0; - continue; - } else if (!ItemStack.isSameItemSameComponents(stackInSlot, stack)) { - continue; - } - int stackInSlotCount = stackInSlot.getCount(); - if (stackInSlotCount <= countInSlot && stackInSlotCount < this.getSlotLimit(index)) { - slot = index; + for (int slot = size - 1; slot >= 0; slot--) { + if (this.isSlotDisabled(slot)) continue; + ItemResource resourceIn = this.getResource(slot); + if (!this.isFiltered(slot, resourceIn.toStack())) continue; + if (resourceIn.isEmpty()) return slot; + if (!resourceIn.equals(resource)) continue; + int stackInSlotCount = this.getAmountAsInt(slot); + if (stackInSlotCount <= countInSlot && stackInSlotCount < this.getSlotLimit(slot)) { + valid = slot; countInSlot = stackInSlotCount; } } - return slot; + return valid; } public boolean canCompletelyInsert(List items) { List copyItems = items.stream().map(ItemStack::copy).toList(); - for (int slot = 0; slot < this.getSlots(); slot++) { + for (int slot = 0; slot < this.size(); slot++) { for (ItemStack stack : copyItems) { if (stack.isEmpty()) continue; ItemStack existing = this.stacks.get(slot); if (!ItemStack.isSameItemSameComponents(stack, existing) && !existing.isEmpty()) continue; - int limit = this.getStackLimit(slot, stack); + int limit = this.getCapacity(slot, ItemResource.of(stack)); int shrink = Math.min(stack.getCount(), limit - existing.getCount()); stack.shrink(shrink); if (!stack.isEmpty() || limit == shrink) break; @@ -61,39 +54,35 @@ public boolean canCompletelyInsert(List items) { return copyItems.stream().allMatch(ItemStack::isEmpty); } - public ItemStack insertItemNoPolling(int slot, ItemStack stack, boolean simulate) { - if (stack.isEmpty()) { - return ItemStack.EMPTY; - } else if (!super.isItemValid(slot, stack)) { - return stack; - } else { - this.validateSlotIndex(slot); - ItemStack existing = this.stacks.get(slot); - int limit = this.getStackLimit(slot, stack); - if (!existing.isEmpty()) { - if (!ItemStack.isSameItemSameComponents(stack, existing)) { - return stack; - } + public int insertNoPolling(ItemResource resource, int amount, TransactionContext transaction) { + TransferPreconditions.checkNonEmptyNonNegative(resource, amount); - limit -= existing.getCount(); - } + int inserted = 0; + int size = this.size(); + for (int index = 0; index < size; index++) { + inserted += this.insertNoPolling(index, resource, amount - inserted, transaction); + if (inserted == amount) break; + } + return inserted; + } - if (limit <= 0) { - return stack; - } else { - boolean reachedLimit = stack.getCount() > limit; - if (!simulate) { - if (existing.isEmpty()) { - this.stacks.set(slot, reachedLimit ? stack.copyWithCount(limit) : stack); - } else { - existing.grow(reachedLimit ? limit : stack.getCount()); - } + public int insertNoPolling(int index, ItemResource resource, int amount, TransactionContext transaction) { + Objects.checkIndex(index, this.size()); + TransferPreconditions.checkNonEmptyNonNegative(resource, amount); - this.onContentsChanged(slot); - } + ItemStack currentStack = this.stacks.get(index); + int currentAmount = this.getAmountFrom(currentStack); - return reachedLimit ? stack.copyWithCount(stack.getCount() - limit) : ItemStack.EMPTY; + if ((currentAmount == 0 || this.matches(currentStack, resource)) && super.isValid(index, resource)) { + int inserted = Math.min(amount, this.getCapacity(index, resource) - currentAmount); + + if (inserted > 0) { + ((StacksResourceHandlerAccessor) this).getSnapshotJournals().get(index).updateSnapshots(transaction); + this.stacks.set(index, this.getStackFrom(resource, currentAmount + inserted)); + return inserted; } } + + return 0; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableItemHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableItemHandler.java index 605961f445..0e9f98afea 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableItemHandler.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableItemHandler.java @@ -1,31 +1,44 @@ package dev.dubhe.anvilcraft.api.itemhandler; -import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.items.ItemStackHandler; +import com.google.common.primitives.Ints; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.ItemStacksResourceHandler; -public class PollableItemHandler extends ItemStackHandler { +public class PollableItemHandler extends ItemStacksResourceHandler { public PollableItemHandler(int size) { super(size); } @Override - public boolean isItemValid(int slot, ItemStack stack) { - return slot == getEmptyOrSmallerSlot(stack); + public boolean isValid(int slot, ItemResource resource) { + return slot == this.getEmptyOrSmallerSlot(resource); } - private int getEmptyOrSmallerSlot(ItemStack stack) { - int slotCount = this.getSlots(); + protected int getEmptyOrSmallerSlot(ItemResource resource) { + int slotCount = this.size(); int slot = -1; int countInSlot = Integer.MAX_VALUE; for (int i = slotCount - 1; i >= 0; i--) { - ItemStack stackInSlot = this.getStackInSlot(i); - if (!stackInSlot.isEmpty() && !ItemStack.isSameItemSameComponents(stackInSlot, stack)) continue; - int stackInSlotCount = stackInSlot.getCount(); - if (stackInSlotCount <= countInSlot && stackInSlotCount < this.getSlotLimit(i)) { + ItemResource resourceIn = this.getResourceDirect(i); + if (!resourceIn.isEmpty() && !resourceIn.equals(resource)) continue; + int amount = this.getAmountAsInt(i); + if (amount <= countInSlot && amount < this.getCapacityAsIntDirect(i, resourceIn)) { slot = i; - countInSlot = stackInSlotCount; + countInSlot = amount; } } return slot; } + + protected int getCapacityAsIntDirect(int index, ItemResource resource) { + return Ints.saturatedCast(this.getCapacityAsLongDirect(index, resource)); + } + + public long getCapacityAsLongDirect(int index, ItemResource resource) { + return !resource.isEmpty() ? getCapacity(index, resource) : 0; + } + + protected ItemResource getResourceDirect(int index) { + return getResourceFrom(stacks.get(index)); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SingleStackResourceHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SingleStackResourceHandler.java new file mode 100644 index 0000000000..8a587302f7 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SingleStackResourceHandler.java @@ -0,0 +1,19 @@ +package dev.dubhe.anvilcraft.api.itemhandler; + +import lombok.Getter; +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.transfer.item.ItemStackResourceHandler; + +@Getter +public class SingleStackResourceHandler extends ItemStackResourceHandler { + protected ItemStack stack = ItemStack.EMPTY; + + @Override + public void setStack(ItemStack stack) { + this.stack = stack; + this.onContentChanged(stack); + } + + protected void onContentChanged(ItemStack stack) { + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java index 5b7ca3d620..a9b5c5df93 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java @@ -1,12 +1,20 @@ package dev.dubhe.anvilcraft.api.itemhandler; import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.items.IItemHandler; -import net.neoforged.neoforge.items.SlotItemHandler; +import net.neoforged.neoforge.transfer.IndexModifier; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.ResourceHandlerSlot; -public class SlotItemHandlerWithFilter extends SlotItemHandler { - public SlotItemHandlerWithFilter(IItemHandler itemHandler, int index, int posX, int posY) { - super(itemHandler, index, posX, posY); +public class SlotItemHandlerWithFilter extends ResourceHandlerSlot { + public SlotItemHandlerWithFilter( + ResourceHandler handler, + IndexModifier modifier, + int index, + int posX, + int posY + ) { + super(handler, modifier, index, posX, posY); } /** @@ -15,7 +23,7 @@ public SlotItemHandlerWithFilter(IItemHandler itemHandler, int index, int posX, * @return 是否支持过滤 */ public boolean isFilter() { - return this.getItemHandler() instanceof FilteredItemStackHandler; + return this.getResourceHandler() instanceof FilteredItemStackHandler; } public boolean mayPlace(ItemStack stack) { @@ -29,7 +37,7 @@ public boolean mayPlace(ItemStack stack) { * @return 如果指定槽位是过滤器,返回过滤器要过滤的物品,否则返回空物品 */ public ItemStack getFilterItem(int slotIndex) { - if (this.getItemHandler() instanceof FilteredItemStackHandler filtered) { + if (this.getResourceHandler() instanceof FilteredItemStackHandler filtered) { return filtered.getFilter(slotIndex); } return ItemStack.EMPTY; @@ -42,7 +50,7 @@ public ItemStack getFilterItem(int slotIndex) { * @return 指定槽位是否被禁用 */ public boolean isSlotDisabled(int slot) { - if (this.getItemHandler() instanceof FilteredItemStackHandler filtered) { + if (this.getResourceHandler() instanceof FilteredItemStackHandler filtered) { return filtered.isSlotDisabled(slot); } return false; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SolidCauldronExtractor.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SolidCauldronExtractor.java new file mode 100644 index 0000000000..e7acd1f18b --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SolidCauldronExtractor.java @@ -0,0 +1,130 @@ +package dev.dubhe.anvilcraft.api.itemhandler; + +import com.google.common.collect.MapMaker; +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.neoforge.fluids.CauldronFluidContent; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.VanillaContainerWrapper; +import net.neoforged.neoforge.transfer.transaction.SnapshotJournal; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; + +import java.util.Map; +import java.util.function.Predicate; + +public class SolidCauldronExtractor extends SnapshotJournal implements ResourceHandler { + /** + * To make sure multiple accesses to the same cauldron return the same wrapper, + * we maintain a {@code (Level, BlockPos) -> Wrapper} cache. + */ + private record WrapperLocation(Level level, BlockPos pos) { + public BlockState getBlockState() { + return this.level.getBlockState(this.pos); + } + } + + /** + * Wrapper map, similar to {@link VanillaContainerWrapper#wrappers}. + * We need the cauldron wrapper to hold a strong reference to the wrapper location to avoid the weak keys being cleared too early. + */ + private static final Map WRAPPERS = new MapMaker() + .concurrencyLevel(1) + .weakKeys() + .weakValues() + .makeMap(); + + public static SolidCauldronExtractor get(Level level, BlockPos pos, Predicate validCauldron) { + SolidCauldronExtractor.WrapperLocation location = new SolidCauldronExtractor.WrapperLocation(level, pos.immutable()); + return WRAPPERS.computeIfAbsent(location, location1 -> new SolidCauldronExtractor(validCauldron, location1)); + } + + private final Predicate validCauldron; + private final SolidCauldronExtractor.WrapperLocation location; + + private SolidCauldronExtractor(Predicate validCauldron, SolidCauldronExtractor.WrapperLocation location) { + this.validCauldron = validCauldron; + this.location = location; + } + + @Override + public int size() { + return 1; + } + + @Override + public ItemResource getResource(int index) { + if (index != 0) return ItemResource.EMPTY; + BlockState state = this.location.getBlockState(); + if (!this.validCauldron.test(state)) return ItemResource.EMPTY; + return ItemResource.of(Items.HONEY_BLOCK); + } + + @Override + public long getAmountAsLong(int index) { + if (index != 0) return 0; + BlockState state = this.location.getBlockState(); + if (!this.validCauldron.test(state)) return 0; + return 1; + } + + @Override + public long getCapacityAsLong(int index, ItemResource resource) { + return 1; + } + + @Override + public boolean isValid(int index, ItemResource resource) { + return false; + } + + @Override + public int insert(int index, ItemResource resource, int amount, TransactionContext transaction) { + return 0; + } + + @Override + public int extract(int index, ItemResource resource, int amount, TransactionContext transaction) { + if (amount <= 0) return 0; + if (index != 0) return 0; + ItemResource resourceIn = this.getResource(index); + if (resourceIn.isEmpty()) return 0; + this.setLevel(transaction); + return 1; + + } + + private void setLevel(TransactionContext transaction) { + this.updateSnapshots(transaction); + this.location.level.setBlock(this.location.pos, Blocks.CAULDRON.defaultBlockState(), 0); + } + + @Override + protected BlockState createSnapshot() { + return this.location.getBlockState(); + } + + @Override + protected void revertToSnapshot(BlockState snapshot) { + this.location.level.setBlock(this.location.pos, snapshot, 0); + } + + @Override + protected void onRootCommit(BlockState originalState) { + BlockState state = this.location.getBlockState(); + + // Skip updating if nothing changed or if the cauldron was removed + if (originalState == state || CauldronFluidContent.getForBlock(state.getBlock()) == null) return; + + // Revert back to the blockstate before any changes happened so that the next + // call will not short-circuit due to the blockstate not really changing. + this.location.level.setBlock(this.location.pos, originalState, 0); + // Now perform the change that will trigger notifications to other blocks/neighbors/clients. + this.location.level.setBlockAndUpdate(this.location.pos, state); + + // Currently we don't send a BLOCK_CHANGE nor FLUID_PLACE/FLUID_PICKUP game event. This can be reconsidered. + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/package-info.java index 62bcacf0e9..99420314ad 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.itemhandler; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/package-info.java index 2aecbeebda..3c97a0583a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/portal/PortalType.java b/src/main/java/dev/dubhe/anvilcraft/api/portal/PortalType.java index b8327cb66d..858113bdac 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/portal/PortalType.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/portal/PortalType.java @@ -8,7 +8,7 @@ import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Portal; @@ -17,21 +17,21 @@ @Getter public class PortalType { public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> inst.group( - ResourceLocation.CODEC + Identifier.CODEC .fieldOf("portal") .forGetter(PortalType::getId) ).apply(inst, PortalType::new)); public static final StreamCodec STREAM_CODEC = StreamCodec.composite( - ResourceLocation.STREAM_CODEC, + Identifier.STREAM_CODEC, PortalType::getId, PortalType::new ); - private final ResourceLocation id; + private final Identifier id; private final Portal portal; - public PortalType(ResourceLocation id) { + public PortalType(Identifier id) { this.id = id; - Block block = BuiltInRegistries.BLOCK.get(id); + Block block = BuiltInRegistries.BLOCK.getValue(id); if (!(block instanceof Portal portal1)) { throw new IllegalArgumentException("Block '" + id + "' is not a portal"); } @@ -40,7 +40,7 @@ public PortalType(ResourceLocation id) { @SuppressWarnings("deprecation") public PortalType(T portal) { - this.id = portal.builtInRegistryHolder().key().location(); + this.id = portal.builtInRegistryHolder().key().identifier(); this.portal = portal; } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/DynamicPowerComponent.java b/src/main/java/dev/dubhe/anvilcraft/api/power/DynamicPowerComponent.java index a90ca0ef05..409ca584db 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/DynamicPowerComponent.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/DynamicPowerComponent.java @@ -7,8 +7,8 @@ import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.entity.Entity; import net.minecraft.world.phys.AABB; -import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.UnknownNullability; +import org.jspecify.annotations.Nullable; import java.util.Collections; import java.util.IdentityHashMap; @@ -33,7 +33,7 @@ public DynamicPowerComponent(Entity owner, Supplier aabbSupplier) { public int getPowerConsumption() { int amount = 0; - for (PowerConsumption powerConsumption : powerConsumptions) { + for (PowerConsumption powerConsumption : this.powerConsumptions) { amount += powerConsumption.amount; } return amount; @@ -51,16 +51,16 @@ public void switchTo(@Nullable PowerGrid powerGrid) { } public AABB boundingBox() { - return aabbSupplier.get(); + return this.aabbSupplier.get(); } public void gridTick() { - if (owner instanceof IDynamicPowerComponentHolder) { - ((IDynamicPowerComponentHolder) owner).anvilcraft$gridTick(); + if (this.owner instanceof IDynamicPowerComponentHolder) { + ((IDynamicPowerComponentHolder) this.owner).anvilcraft$gridTick(); } } - public MutableComponent getCommandDiscription() { + public MutableComponent getCommandDescription() { double x = this.owner.getX(); double y = this.owner.getY(); double z = this.owner.getZ(); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/FastShape.java b/src/main/java/dev/dubhe/anvilcraft/api/power/FastShape.java index de2eb40de4..a34f37d235 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/FastShape.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/FastShape.java @@ -14,7 +14,7 @@ public FastShape(List shapes) { } public boolean inRange(Vec3 pos) { - for (AABB aabb : shapes) { + for (AABB aabb : this.shapes) { if (aabb.contains(pos)) { return true; } @@ -23,7 +23,7 @@ public boolean inRange(Vec3 pos) { } public boolean intersects(AABB box) { - for (AABB aabb : shapes) { + for (AABB aabb : this.shapes) { if (aabb.intersects(box)) { return true; } @@ -32,7 +32,7 @@ public boolean intersects(AABB box) { } public void add(AABB shape) { - shapes.add(shape); + this.shapes.add(shape); } public static FastShape create(List shapes) { diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerComponent.java b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerComponent.java index 5455ef79e8..60c8a244b9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerComponent.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerComponent.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.phys.AABB; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Optional; @@ -32,8 +32,8 @@ default void gridTick() { BlockPos getPos(); default AABB getShape() { - float range = getRange() * 2 + 1; - return AABB.ofSize(getPos().getCenter(), range, range, range); + float range = this.getRange() * 2 + 1; + return AABB.ofSize(this.getPos().getCenter(), range, range, range); } default int getRange() { @@ -94,7 +94,7 @@ default void flushState(Level level, BlockPos pos) { @Override default int compareTo(IPowerComponent powerComponent) { if (this.equals(powerComponent)) return 0; - int i = getComponentType().compareTo(powerComponent.getComponentType()); + int i = this.getComponentType().compareTo(powerComponent.getComponentType()); return i == 0 ? 1 : i; } @@ -102,6 +102,22 @@ default boolean isGridWorking() { return Optional.ofNullable(this.getGrid()).map(PowerGrid::isWorking).orElse(false); } + /** + * 转换为电网元件信息 + */ + default PowerComponentInfo toPowerComponentInfo() { + return new PowerComponentInfo( + this.getPos(), + 0, + 0, + 0, + 0, + this.getRange(), + this.getShape(), + this.getComponentType() + ); + } + default MutableComponent getCommandDiscription() { Block block = Optional.ofNullable(this.getCurrentLevel()) .map(level -> level.getBlockState(this.getPos()).getBlock()) diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerConsumer.java b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerConsumer.java index 5b4825ce42..a83124ac82 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerConsumer.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerConsumer.java @@ -12,4 +12,18 @@ default int getInputPower() { default PowerComponentType getComponentType() { return PowerComponentType.CONSUMER; } + + @Override + default PowerComponentInfo toPowerComponentInfo() { + return new PowerComponentInfo( + getPos(), + this.getInputPower(), + 0, + 0, + 0, + getRange(), + getShape(), + PowerComponentType.CONSUMER + ); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerProducer.java b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerProducer.java index e3baf2cd90..9cf8f40d01 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerProducer.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerProducer.java @@ -1,8 +1,5 @@ package dev.dubhe.anvilcraft.api.power; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; - import java.util.Optional; /** @@ -22,10 +19,24 @@ default PowerComponentType getComponentType() { return PowerComponentType.PRODUCER; } + @Override + default PowerComponentInfo toPowerComponentInfo() { + return new PowerComponentInfo( + getPos(), + 0, + this.getOutputPower(), + 0, + 0, + getRange(), + getShape(), + PowerComponentType.PRODUCER + ); + } + /** * 实际电量 */ - @OnlyIn(Dist.CLIENT) + // @OnlyIn(Dist.CLIENT) default int getServerPower() { Optional s = SimplePowerGrid.findPowerGrid(getPos()); if (s.isPresent()) { @@ -38,7 +49,7 @@ default int getServerPower() { : powerComponentInfo.consumes()) .orElse(1); } else { - return Math.abs(getOutputPower()); + return Math.abs(this.getOutputPower()); } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerStorage.java b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerStorage.java index ba65c3f093..4389529188 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerStorage.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerStorage.java @@ -38,4 +38,18 @@ public interface IPowerStorage extends IPowerProducer, IPowerConsumer { default PowerComponentType getComponentType() { return PowerComponentType.STORAGE; } + + @Override + default PowerComponentInfo toPowerComponentInfo() { + return new PowerComponentInfo( + getPos(), + 0, + 0, + this.getPowerAmount(), + this.getCapacity(), + getRange(), + getShape(), + PowerComponentType.STORAGE + ); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerTransmitter.java b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerTransmitter.java index da4d470f20..58673bfa8b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerTransmitter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/IPowerTransmitter.java @@ -15,4 +15,18 @@ default int getRange() { default PowerComponentType getComponentType() { return PowerComponentType.TRANSMITTER; } + + @Override + default PowerComponentInfo toPowerComponentInfo() { + return new PowerComponentInfo( + getPos(), + 0, + 0, + 0, + 0, + this.getRange(), + getShape(), + PowerComponentType.TRANSMITTER + ); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/PowerComponentInfo.java b/src/main/java/dev/dubhe/anvilcraft/api/power/PowerComponentInfo.java index 53708c9269..c6a906cfd3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/PowerComponentInfo.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/PowerComponentInfo.java @@ -3,10 +3,12 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.anvilcraft.lib.v2.codec.StreamCodecUtil; -import io.netty.buffer.ByteBuf; +import dev.dubhe.anvilcraft.util.CodecUtil; import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; +import net.minecraft.world.phys.AABB; public record PowerComponentInfo( BlockPos pos, @@ -15,6 +17,7 @@ public record PowerComponentInfo( int stores, int capacity, int range, + AABB boundingBox, PowerComponentType type ) { public static final Codec CODEC = RecordCodecBuilder.create(ins -> ins.group( @@ -36,11 +39,14 @@ public record PowerComponentInfo( Codec.INT .fieldOf("range") .forGetter(PowerComponentInfo::range), + CodecUtil.AABB_CODEC + .fieldOf("boundingBox") + .forGetter(PowerComponentInfo::boundingBox), PowerComponentType.CODEC .fieldOf("type") .forGetter(PowerComponentInfo::type) ).apply(ins, PowerComponentInfo::new)); - public static final StreamCodec STREAM_CODEC = StreamCodecUtil.composite( + public static final StreamCodec STREAM_CODEC = StreamCodecUtil.composite( BlockPos.STREAM_CODEC, PowerComponentInfo::pos, ByteBufCodecs.VAR_INT, @@ -53,6 +59,8 @@ public record PowerComponentInfo( PowerComponentInfo::consumes, ByteBufCodecs.VAR_INT, PowerComponentInfo::consumes, + CodecUtil.AABB_STREAM_CODEC, + PowerComponentInfo::boundingBox, StreamCodecUtil.enumStreamCodec(PowerComponentType.class), PowerComponentInfo::type, PowerComponentInfo::new diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGrid.java b/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGrid.java index 98c6e2f624..a441090674 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGrid.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGrid.java @@ -67,9 +67,9 @@ public PowerGrid(Level level) { } public void update(boolean forced) { - if (forced || changed) { + if (forced || this.changed) { PacketDistributor.sendToPlayersTrackingChunk( - (ServerLevel) level, + (ServerLevel) this.level, this.level.getChunkAt(this.getPos()).getPos(), new PowerGridSyncPacket(this) ); @@ -109,12 +109,12 @@ public static void tickGrid() { */ protected void tick() { if (this.level.getGameTime() % GRID_TICK != 0) return; - if (this.isMarkedRemoval()) return; + if (this.markedRemoval) return; if (this.flush()) return; if (this.isWorking()) { int remainder = this.generate - this.consume; - for (IPowerStorage storage : storages) { - if (checkRemove(storage)) return; + for (IPowerStorage storage : this.storages) { + if (this.checkRemove(storage)) return; remainder = storage.insert(remainder); if (remainder <= 0) break; } @@ -134,12 +134,12 @@ protected void tick() { } this.gridTick(); this.update(false); - changed = false; + this.changed = false; } private void gridTick() { - components.forEach(IPowerComponent::gridTick); - dynamicComponents.forEach(DynamicPowerComponent::gridTick); + this.components.forEach(IPowerComponent::gridTick); + this.dynamicComponents.forEach(DynamicPowerComponent::gridTick); } private boolean checkRemove(IPowerComponent component) { @@ -155,28 +155,22 @@ public boolean flush() { final int oldConsume = this.consume; this.generate = 0; this.consume = 0; - for (IPowerTransmitter transmitter : transmitters) { - if (checkRemove(transmitter)) { - return true; - } + for (IPowerTransmitter transmitter : this.transmitters) { + if (this.checkRemove(transmitter)) return true; } for (IPowerProducer producer : this.producers) { - if (checkRemove(producer)) { - return true; - } + if (this.checkRemove(producer)) return true; this.generate += producer.getOutputPower(); } for (IPowerConsumer consumer : this.consumers) { - if (checkRemove(consumer)) { - return true; - } + if (this.checkRemove(consumer)) return true; this.consume += consumer.getInputPower(); } for (DynamicPowerComponent dynamicComponent : new ArrayList<>(this.dynamicComponents)) { Entity owner = dynamicComponent.getOwner(); if (owner.level() != this.level || !this.collideFast(dynamicComponent.boundingBox())) { - notifyLeaving(dynamicComponent); + this.notifyLeaving(dynamicComponent); continue; } int power = dynamicComponent.getPowerConsumption(); @@ -194,11 +188,11 @@ public boolean flush() { } public boolean inRangeFast(Vec3 pos) { - return shape.inRange(pos); + return this.shape.inRange(pos); } public boolean collideFast(AABB box) { - return shape.intersects(box); + return this.shape.intersects(box); } /** @@ -310,7 +304,7 @@ public void merge(PowerGrid grid) { grid.consumers.forEach(this::add); grid.storages.forEach(this::add); grid.transmitters.forEach(this::add); - changed = true; + this.changed = true; } /** diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGridManager.java b/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGridManager.java index c154618055..e09d145dc4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGridManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/PowerGridManager.java @@ -25,7 +25,7 @@ public PowerGridManager() { public synchronized void addComponent(IPowerComponent component) { try { if (component.getCurrentLevel() == null) return; - addQueue.offer(Map.entry(component.getCurrentLevel(), component), 500, TimeUnit.MICROSECONDS); + this.addQueue.offer(Map.entry(component.getCurrentLevel(), component), 500, TimeUnit.MICROSECONDS); } catch (InterruptedException e) { throw new RuntimeException(e); } @@ -41,20 +41,20 @@ public synchronized void removeAll(Collection powerGrids) { } public void clear() { - gridMap.clear(); + this.gridMap.clear(); } public synchronized void tick() { - while (!addQueue.isEmpty()) { - Map.Entry entry = addQueue.poll(); + while (!this.addQueue.isEmpty()) { + Map.Entry entry = this.addQueue.poll(); if (entry == null) continue; IPowerComponent component = entry.getValue(); if (component.getComponentType() == PowerComponentType.INVALID) continue; AtomicReference grid = new AtomicReference<>(null); - Set grids = getGridSet(entry.getKey()); + Set grids = this.getGridSet(entry.getKey()); Set remove = Collections.synchronizedSet(new HashSet<>()); grids.forEach(powerGrid -> { - if (powerGrid.isMarkedRemoval() || !powerGrid.isInRange(component)) return; + if (powerGrid.markedRemoval || !powerGrid.isInRange(component)) return; if (grid.get() == null) { grid.set(powerGrid); } else { @@ -70,10 +70,10 @@ public synchronized void tick() { grid.get().add(component); grids.add(grid.get()); } - for (Set grids : gridMap.values()) { + for (Set grids : this.gridMap.values()) { Set remove = Collections.synchronizedSet(new HashSet<>()); grids.forEach(powerGrid -> { - if (powerGrid.isEmpty() || powerGrid.isMarkedRemoval()) { + if (powerGrid.isEmpty() || powerGrid.markedRemoval) { remove.add(powerGrid); } powerGrid.tick(); @@ -83,11 +83,11 @@ public synchronized void tick() { } public Set getGridSet(Level level) { - if (gridMap.containsKey(level)) { - return gridMap.get(level); + if (this.gridMap.containsKey(level)) { + return this.gridMap.get(level); } else { Set grids = Collections.synchronizedSet(new HashSet<>()); - gridMap.put(level, grids); + this.gridMap.put(level, grids); return grids; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/SimplePowerGrid.java b/src/main/java/dev/dubhe/anvilcraft/api/power/SimplePowerGrid.java index 2e945b6924..7de719d1e0 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/SimplePowerGrid.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/SimplePowerGrid.java @@ -16,7 +16,7 @@ import net.minecraft.nbt.Tag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.util.FastColor; +import net.minecraft.util.ARGB; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.BooleanOp; @@ -75,20 +75,20 @@ public SimplePowerGrid(int id, String level, BlockPos pos, List powerComponents = new HashSet<>(); powerComponents.addAll(grid.storages); @@ -97,67 +97,7 @@ public SimplePowerGrid(PowerGrid grid) { powerComponents.addAll(grid.transmitters); this.color = 0; for (IPowerComponent component : powerComponents) { - switch (component.getComponentType()) { - case STORAGE -> { - IPowerStorage it = (IPowerStorage) component; - powerComponentInfoList.add(new PowerComponentInfo( - it.getPos(), - 0, - 0, - it.getPowerAmount(), - it.getCapacity(), - it.getRange(), - PowerComponentType.STORAGE - )); - } - case CONSUMER -> { - IPowerConsumer it = (IPowerConsumer) component; - powerComponentInfoList.add(new PowerComponentInfo( - it.getPos(), - it.getInputPower(), - 0, - 0, - 0, - it.getRange(), - PowerComponentType.CONSUMER - )); - } - case PRODUCER -> { - IPowerProducer it = (IPowerProducer) component; - powerComponentInfoList.add(new PowerComponentInfo( - it.getPos(), - 0, - it.getOutputPower(), - 0, - 0, - it.getRange(), - PowerComponentType.PRODUCER - )); - } - - case TRANSMITTER -> { - IPowerTransmitter it = (IPowerTransmitter) component; - powerComponentInfoList.add(new PowerComponentInfo( - it.getPos(), - 0, - 0, - 0, - 0, - it.getRange(), - PowerComponentType.TRANSMITTER - )); - } - - default -> powerComponentInfoList.add(new PowerComponentInfo( - component.getPos(), - 0, - 0, - 0, - 0, - component.getRange(), - PowerComponentType.INVALID - )); - } + this.powerComponentInfoList.add(component.toPowerComponentInfo()); } this.consume = grid.getConsume(); this.generate = grid.getGenerate(); @@ -206,31 +146,23 @@ public boolean collideFast(AABB aabb) { * 获得指定坐标的电网元件信息 */ public Optional getInfoForPos(BlockPos pos) { - return powerComponentInfoList.stream().filter(it -> it.pos().equals(pos)).findFirst(); + return this.powerComponentInfoList.stream().filter(it -> it.pos().equals(pos)).findFirst(); } public boolean isOverloaded() { return this.getConsume() > this.getGenerate(); } + @SuppressWarnings("BooleanMethodIsAlwaysInverted") public boolean shouldRender(Vec3 cameraPos) { int renderDistance = Minecraft.getInstance().options.getEffectiveRenderDistance() * 16; - return powerComponentInfoList.stream().anyMatch(it -> it.pos().getCenter().distanceTo(cameraPos) < renderDistance); + return this.powerComponentInfoList.stream().anyMatch(it -> it.pos().getCenter().distanceTo(cameraPos) < renderDistance); } private void createTransmitterVisualLines() { List> shapes = this.powerComponentInfoList.stream() .filter(it -> it.type() == PowerComponentType.TRANSMITTER) - .map(it -> Map.entry( - it.pos(), new AABB( - -it.range() + it.pos().getX(), - -it.range() + it.pos().getY(), - -it.range() + it.pos().getZ(), - it.range() + 1 + it.pos().getX(), - it.range() + 1 + it.pos().getY(), - it.range() + 1 + it.pos().getZ() - ) - )) + .map(it -> Map.entry(it.pos(), it.boundingBox())) .toList(); for (int i = 0; i < shapes.size(); i++) { @@ -242,7 +174,7 @@ private void createTransmitterVisualLines() { if (a.intersects(b)) { Vec3 start = e1.getKey().getCenter(); Vec3 end = e2.getKey().getCenter(); - powerTransmitterLines.add(new Line(start, end)); + this.powerTransmitterLines.add(new Line(start, end)); } } } @@ -252,7 +184,7 @@ private void createMergedOutlineShape() { if (SimplePowerGrid.EXECUTOR.isShutdown()) SimplePowerGrid.recreateExecutor(); this.shapeFuture = SimplePowerGrid.EXECUTOR.submit(() -> { List input = new ArrayList<>(); - for (PowerComponentInfo it : powerComponentInfoList) { + for (PowerComponentInfo it : this.powerComponentInfoList) { Vec3 center = it.pos().getCenter(); float size = it.range() * 2 + 1; input.add(Shapes.create(AABB.ofSize(center, size, size, size))); @@ -281,8 +213,8 @@ private BlockPos offset(BlockPos pos) { } public void destroy() { - if (!shapeFuture.isDone()) { - shapeFuture.cancel(true); + if (!this.shapeFuture.isDone()) { + this.shapeFuture.cancel(true); } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/power/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/power/package-info.java index aee02b12af..e388534f3d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/power/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/power/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.power; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ICustomDataComponent.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ICustomDataComponent.java index a1f0e2adb0..b56ec4f0f5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ICustomDataComponent.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ICustomDataComponent.java @@ -2,16 +2,14 @@ import com.mojang.serialization.Codec; import dev.anvilcraft.lib.v2.util.ISerializer; +import dev.dubhe.anvilcraft.api.recipe.result.ResultContext; import dev.dubhe.anvilcraft.init.ModRegistries; -import it.unimi.dsi.fastutil.objects.Object2BooleanMap; import net.minecraft.core.component.DataComponentType; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.Nullable; - -import java.util.List; +import org.jspecify.annotations.Nullable; /** * 自定义数据组件。通常为必需其它数据组件才能正常构建的数据组件。 @@ -40,22 +38,13 @@ public interface ICustomDataComponent { Type> getType(); /** - * 获取构建该数据组件所必需的其它已有的数据组件类型。

- * 由于 {@link ICustomDataComponent#make(List)} 方法强依赖于该方法返回的 {@link List} 的顺序, - * 返回的 {@link List} 顺序敏感。 - * - * @return 一个包含所有必需的数据组件类型和其值是否可为 {@code null} 的 {@link Object2BooleanMap} - */ - List getRequired(); - - /** - * 使用所有必需的数据组件构建一个该数据组件。 + * 根据上下文构建数据组件。 * - * @param data 所有必需的数据组件。顺序由 {@link ICustomDataComponent#getRequired()} 方法中返回的 {@link List} 控制。 - * @return 一个全新的该数据组件 + * @param ctx 上下文 + * @return 一个全新的数据组件 */ @Nullable - T make(List data); + T make(ResultContext ctx); default void applyToStack(ItemStack stack, @Nullable T value) { if (value == null) stack.remove(this.getDataComponentType()); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ItemEnchantmentsData.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ItemEnchantmentsData.java index 268f943bae..1cda4bca8f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ItemEnchantmentsData.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/ItemEnchantmentsData.java @@ -1,9 +1,10 @@ package dev.dubhe.anvilcraft.api.recipe.data; -import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.anvilcraft.lib.v2.util.Util; +import dev.dubhe.anvilcraft.api.recipe.result.ResultContext; +import dev.dubhe.anvilcraft.api.recipe.slot.RecipeInputSlot; import dev.dubhe.anvilcraft.init.item.ModComponents; import dev.dubhe.anvilcraft.init.item.ModCustomDataComponents; import lombok.EqualsAndHashCode; @@ -12,50 +13,70 @@ import net.minecraft.core.component.DataComponentType; import net.minecraft.core.component.DataComponents; import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.ItemEnchantments; -import java.util.List; - @Getter @EqualsAndHashCode public class ItemEnchantmentsData implements ICustomDataComponent { - private final List required; - private final int input; - private final DataComponentType dataComponentType; + private final RecipeInputSlot input; + private final DataComponentType type; - private ItemEnchantmentsData(int input, DataComponentType type) { + private ItemEnchantmentsData(RecipeInputSlot input, DataComponentType type) { this.input = input; - this.dataComponentType = Util.cast(type); - this.required = List.of(new RequiredEntry(input, type, true)); + this.type = Util.cast(type); + } + + private ItemEnchantmentsData(int input, DataComponentType type) { + this(RecipeInputSlot.input(input), type); + } + + public static ItemEnchantmentsData custom(RecipeInputSlot input, DataComponentType type) { + return new ItemEnchantmentsData(input, type); } public static ItemEnchantmentsData custom(int input, DataComponentType type) { return new ItemEnchantmentsData(input, type); } + public static ItemEnchantmentsData enchantments(RecipeInputSlot input) { + return new ItemEnchantmentsData(input, DataComponents.ENCHANTMENTS); + } + public static ItemEnchantmentsData enchantments(int input) { return new ItemEnchantmentsData(input, DataComponents.ENCHANTMENTS); } + public static ItemEnchantmentsData storedEnchantments(RecipeInputSlot input) { + return new ItemEnchantmentsData(input, DataComponents.STORED_ENCHANTMENTS); + } + public static ItemEnchantmentsData storedEnchantments(int input) { return new ItemEnchantmentsData(input, DataComponents.STORED_ENCHANTMENTS); } + public static ItemEnchantmentsData mercilessEnchantments(RecipeInputSlot input) { + return new ItemEnchantmentsData(input, ModComponents.MERCILESS_ENCHANTMENTS); + } + public static ItemEnchantmentsData mercilessEnchantments(int input) { return new ItemEnchantmentsData(input, ModComponents.MERCILESS_ENCHANTMENTS); } + @Override + public DataComponentType getDataComponentType() { + return this.type; + } + @Override public Type getType() { return ModCustomDataComponents.ITEM_ENCHANTMENTS.get(); } @Override - public ItemEnchantments make(List data) { - return Util.cast(data.getFirst()); + public ItemEnchantments make(ResultContext ctx) { + return ctx.getInput(this.input).get(this.type); } @Override @@ -70,15 +91,14 @@ public ItemEnchantments merge(ItemEnchantments oldData, ItemEnchantments newData public static class Type implements ICustomDataComponent.Type { public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(inst -> inst.group( - Codec.INT - .fieldOf("input") + RecipeInputSlot.CODEC .forGetter(ItemEnchantmentsData::getInput), DataComponentType.CODEC .fieldOf("component") .forGetter(ItemEnchantmentsData::getDataComponentType) ).apply(inst, ItemEnchantmentsData::new)); public static final StreamCodec STREAM_CODEC = StreamCodec.composite( - ByteBufCodecs.VAR_INT, + RecipeInputSlot.STREAM_CODEC, ItemEnchantmentsData::getInput, DataComponentType.STREAM_CODEC, ItemEnchantmentsData::getDataComponentType, diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/MultiphaseData.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/MultiphaseData.java index 5d9b9db1ba..83ccee3e02 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/MultiphaseData.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/MultiphaseData.java @@ -3,11 +3,15 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import dev.anvilcraft.lib.v2.util.ListUtil; +import dev.dubhe.anvilcraft.api.recipe.result.ResultContext; +import dev.dubhe.anvilcraft.api.recipe.slot.RecipeInputSlot; import dev.dubhe.anvilcraft.init.item.ModComponents; import dev.dubhe.anvilcraft.init.item.ModCustomDataComponents; import dev.dubhe.anvilcraft.item.property.component.MultiphaseRef; import dev.dubhe.anvilcraft.saved.multiphase.Multiphase; +import lombok.AccessLevel; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import net.minecraft.core.component.DataComponentType; import net.minecraft.core.component.DataComponents; import net.minecraft.network.RegistryFriendlyByteBuf; @@ -17,20 +21,13 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.ItemEnchantments; import net.neoforged.neoforge.server.ServerLifecycleHooks; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; -import java.util.ArrayList; import java.util.LinkedList; -import java.util.List; +@NoArgsConstructor(access = AccessLevel.PROTECTED) @EqualsAndHashCode public abstract class MultiphaseData implements ICustomDataComponent { - private final List required; - - private MultiphaseData(List required) { - this.required = required; - } - public static MultiphaseData two() { return new Two(); } @@ -48,7 +45,7 @@ private static MultiphaseData fromType(String type) { case Two.TYPE -> new Two(); case Four.TYPE -> new Four(); case Eight.TYPE -> new Eight(); - case null, default -> throw new IllegalArgumentException("Find invalid type. Expect two, four and eight, get " + type); + case null, default -> throw new IllegalArgumentException("Find invalid type. Expect two, four or eight, get " + type); }; } @@ -62,11 +59,6 @@ public Type getType() { return ModCustomDataComponents.MULTIPHASE.get(); } - @Override - public List getRequired() { - return this.required; - } - @Override public MultiphaseRef merge(MultiphaseRef oldData, MultiphaseRef newData) { Multiphase old = oldData.toMultiphase(); @@ -104,52 +96,28 @@ public void applyToStack(ItemStack stack, @Nullable MultiphaseRef value) { protected abstract String type(); - private static @Nullable Component processCustomName(@Nullable Object customName) { - return customName instanceof Component it ? it : null; - } - - private static int processRepairCost(@Nullable Object repairCost) { - return repairCost instanceof Integer it ? it : 0; - } - - private static ItemEnchantments processItemEnchantments(@Nullable Object enchantments) { - return enchantments instanceof ItemEnchantments it ? it : ItemEnchantments.EMPTY; - } - private static class Two extends MultiphaseData { - private static final List REQUIRED = new ArrayList<>(); public static final String TYPE = "two"; - Two() { - super(Two.getOrFillRequired()); - } - - @SuppressWarnings("SameReturnValue") - private static List getOrFillRequired() { - if (!Two.REQUIRED.isEmpty()) return Two.REQUIRED; - for (int i = 0; i < 2; i++) { - Two.REQUIRED.add(new RequiredEntry(i, DataComponents.CUSTOM_NAME, true)); - Two.REQUIRED.add(new RequiredEntry(i, DataComponents.REPAIR_COST, true)); - Two.REQUIRED.add(new RequiredEntry(i, DataComponents.ENCHANTMENTS, true)); - } - return Two.REQUIRED; - } - @Override protected String type() { return Two.TYPE; } @Override - public MultiphaseRef make(List data) { + public MultiphaseRef make(ResultContext ctx) { LinkedList phases = new LinkedList<>(); for (int i = 0; i < 2; i++) { - int base = i * 3; + ItemStack stack = ctx.getInput(RecipeInputSlot.input(i)); phases.add( Multiphase.Phase.create(i) - .withCustomName(MultiphaseData.processCustomName(data.get(base))) - .withRepairCost(MultiphaseData.processRepairCost(data.get(base + 1))) - .withEnchantments(MultiphaseData.processItemEnchantments(data.get(base + 2))) + .withCustomName(stack.get(DataComponents.CUSTOM_NAME)) + .withItemName( + Component.translatable(ctx.getResult().getItem().getDescriptionId()).copy().append(Multiphase.makeSuffix(i)) + ) + .withRepairCost(stack.getOrDefault(DataComponents.REPAIR_COST, 0)) + .withEnchantments(stack.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack.getOrDefault(ModComponents.MERCILESS_ENCHANTMENTS, ItemEnchantments.EMPTY)) ); } return new MultiphaseRef(new Multiphase(phases)); @@ -157,46 +125,31 @@ public MultiphaseRef make(List data) { } private static class Four extends MultiphaseData { - private static final List REQUIRED = new ArrayList<>(); public static final String TYPE = "four"; - Four() { - super(Four.getOrFillRequired()); - } - - @SuppressWarnings("SameReturnValue") - private static List getOrFillRequired() { - if (!Four.REQUIRED.isEmpty()) return Four.REQUIRED; - Four.REQUIRED.add(new RequiredEntry(0, DataComponents.CUSTOM_NAME, true)); - Four.REQUIRED.add(new RequiredEntry(2, DataComponents.CUSTOM_NAME, true)); - for (int i = 0; i < 4; i++) { - Four.REQUIRED.add(new RequiredEntry(i, DataComponents.REPAIR_COST, true)); - Four.REQUIRED.add(new RequiredEntry(i, DataComponents.ENCHANTMENTS, true)); - } - return Four.REQUIRED; - } - @Override protected String type() { return Four.TYPE; } @Override - public MultiphaseRef make(List data) { + public MultiphaseRef make(ResultContext ctx) { LinkedList phases = new LinkedList<>(); - Component[] customNames = new Component[] { - MultiphaseData.processCustomName(data.getFirst()), - MultiphaseData.processCustomName(data.get(1)) - }; for (int i = 0; i < 2; i++) { - int base = i * 4 + 2; + ItemStack stack = ctx.getInput(RecipeInputSlot.input(i * 2)); + ItemStack stack1 = ctx.getInput(RecipeInputSlot.input(i * 2 + 1)); phases.add( Multiphase.Phase.create(i) - .withCustomName(customNames[i]) - .withRepairCost(MultiphaseData.processRepairCost(data.get(base))) - .addRepairCost(MultiphaseData.processRepairCost(data.get(base + 2))) - .withEnchantments(MultiphaseData.processItemEnchantments(data.get(base + 1))) - .addEnchantments(MultiphaseData.processItemEnchantments(data.get(base + 3))) + .withCustomName(stack.get(DataComponents.CUSTOM_NAME)) + .withItemName( + Component.translatable(ctx.getResult().getItem().getDescriptionId()).copy().append(Multiphase.makeSuffix(i)) + ) + .withRepairCost(stack.getOrDefault(DataComponents.REPAIR_COST, 0)) + .addRepairCost(stack1.getOrDefault(DataComponents.REPAIR_COST, 0)) + .withEnchantments(stack.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack.getOrDefault(ModComponents.MERCILESS_ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack1.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack1.getOrDefault(ModComponents.MERCILESS_ENCHANTMENTS, ItemEnchantments.EMPTY)) ); } return new MultiphaseRef(new Multiphase(phases)); @@ -204,50 +157,39 @@ public MultiphaseRef make(List data) { } private static class Eight extends MultiphaseData { - private static final List REQUIRED = new ArrayList<>(); public static final String TYPE = "eight"; - Eight() { - super(Eight.getOrFillRequired()); - } - - @SuppressWarnings("SameReturnValue") - private static List getOrFillRequired() { - if (!Eight.REQUIRED.isEmpty()) return Eight.REQUIRED; - Eight.REQUIRED.add(new RequiredEntry(0, DataComponents.CUSTOM_NAME, true)); - Eight.REQUIRED.add(new RequiredEntry(4, DataComponents.CUSTOM_NAME, true)); - for (int i = 0; i < 8; i++) { - Eight.REQUIRED.add(new RequiredEntry(i, DataComponents.REPAIR_COST, true)); - Eight.REQUIRED.add(new RequiredEntry(i, DataComponents.ENCHANTMENTS, true)); - } - return Eight.REQUIRED; - } - @Override protected String type() { return Eight.TYPE; } @Override - public MultiphaseRef make(List data) { + public MultiphaseRef make(ResultContext ctx) { LinkedList phases = new LinkedList<>(); - Component[] customNames = new Component[] { - data.getFirst() instanceof Component it ? it : null, - data.get(1) instanceof Component it ? it : null - }; for (int i = 0; i < 2; i++) { - int base = i * 8 + 2; + ItemStack stack = ctx.getInput(RecipeInputSlot.input(i * 4)); + ItemStack stack1 = ctx.getInput(RecipeInputSlot.input(i * 4 + 1)); + ItemStack stack2 = ctx.getInput(RecipeInputSlot.input(i * 4 + 2)); + ItemStack stack3 = ctx.getInput(RecipeInputSlot.input(i * 4 + 3)); phases.add( Multiphase.Phase.create(i) - .withCustomName(customNames[i]) - .withRepairCost(MultiphaseData.processRepairCost(data.get(base))) - .addRepairCost(MultiphaseData.processRepairCost(data.get(base + 2))) - .addRepairCost(MultiphaseData.processRepairCost(data.get(base + 4))) - .addRepairCost(MultiphaseData.processRepairCost(data.get(base + 6))) - .withEnchantments(MultiphaseData.processItemEnchantments(data.get(base + 1))) - .addEnchantments(MultiphaseData.processItemEnchantments(data.get(base + 3))) - .addEnchantments(MultiphaseData.processItemEnchantments(data.get(base + 5))) - .addEnchantments(MultiphaseData.processItemEnchantments(data.get(base + 7))) + .withCustomName(stack.get(DataComponents.CUSTOM_NAME)) + .withItemName( + Component.translatable(ctx.getResult().getItem().getDescriptionId()).copy().append(Multiphase.makeSuffix(i)) + ) + .withRepairCost(stack.getOrDefault(DataComponents.REPAIR_COST, 0)) + .addRepairCost(stack1.getOrDefault(DataComponents.REPAIR_COST, 0)) + .addRepairCost(stack2.getOrDefault(DataComponents.REPAIR_COST, 0)) + .addRepairCost(stack3.getOrDefault(DataComponents.REPAIR_COST, 0)) + .withEnchantments(stack.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack.getOrDefault(ModComponents.MERCILESS_ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack1.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack1.getOrDefault(ModComponents.MERCILESS_ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack2.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack2.getOrDefault(ModComponents.MERCILESS_ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack3.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)) + .addEnchantments(stack3.getOrDefault(ModComponents.MERCILESS_ENCHANTMENTS, ItemEnchantments.EMPTY)) ); } return new MultiphaseRef(new Multiphase(phases)); @@ -255,7 +197,8 @@ public MultiphaseRef make(List data) { } public static class Type implements ICustomDataComponent.Type { - public static final MapCodec CODEC = Codec.STRING.fieldOf("input_type") + public static final MapCodec CODEC = Codec.STRING + .fieldOf("input_type") .xmap(MultiphaseData::fromType, MultiphaseData::type); public static final StreamCodec STREAM_CODEC = ByteBufCodecs.STRING_UTF8 .map(MultiphaseData::fromType, MultiphaseData::type).cast(); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/NormalDataComponent.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/NormalDataComponent.java index 5d6ba9c94d..19fb5363c9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/NormalDataComponent.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/NormalDataComponent.java @@ -1,45 +1,49 @@ package dev.dubhe.anvilcraft.api.recipe.data; -import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.anvilcraft.lib.v2.util.Util; +import dev.dubhe.anvilcraft.api.recipe.result.ResultContext; +import dev.dubhe.anvilcraft.api.recipe.slot.RecipeInputSlot; import dev.dubhe.anvilcraft.init.item.ModCustomDataComponents; import lombok.EqualsAndHashCode; import lombok.Getter; import net.minecraft.core.component.DataComponentType; import net.minecraft.core.component.DataComponents; import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import java.util.List; - @Getter @EqualsAndHashCode public class NormalDataComponent implements ICustomDataComponent { - private final List required; - private final int input; - private final DataComponentType dataComponentType; + private final RecipeInputSlot input; + private final DataComponentType type; - private NormalDataComponent(int input, DataComponentType type) { + private NormalDataComponent(RecipeInputSlot input, DataComponentType type) { this.input = input; - this.dataComponentType = type; - this.required = List.of(new RequiredEntry(input, type, true)); + this.type = type; } - public static NormalDataComponent of(int input, DataComponentType type) { + public static NormalDataComponent of(RecipeInputSlot input, DataComponentType type) { return new NormalDataComponent<>(input, type); } + public static NormalDataComponent of(int input, DataComponentType type) { + return new NormalDataComponent<>(RecipeInputSlot.input(input), type); + } + + @Override + public DataComponentType getDataComponentType() { + return this.type; + } + @Override public Type getType() { return ModCustomDataComponents.NORMAL.get(); } @Override - public T make(List data) { - return Util.cast(data.getFirst()); + public T make(ResultContext ctx) { + return ctx.getInput(this.input).get(this.type); } @Override @@ -49,15 +53,14 @@ public T merge(T oldData, T newData) { public static class Type implements ICustomDataComponent.Type> { public static final MapCodec> CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( - Codec.INT - .fieldOf("input") + RecipeInputSlot.CODEC .forGetter(NormalDataComponent::getInput), DataComponentType.CODEC .fieldOf("component") .forGetter(NormalDataComponent::getDataComponentType) ).apply(instance, NormalDataComponent::new)); public static final StreamCodec> STREAM_CODEC = StreamCodec.composite( - ByteBufCodecs.VAR_INT, + RecipeInputSlot.STREAM_CODEC, NormalDataComponent::getInput, DataComponentType.STREAM_CODEC, NormalDataComponent::getDataComponentType, diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/RequiredEntry.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/RequiredEntry.java deleted file mode 100644 index e5c1ed53b4..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/RequiredEntry.java +++ /dev/null @@ -1,30 +0,0 @@ -package dev.dubhe.anvilcraft.api.recipe.data; - -import dev.dubhe.anvilcraft.api.recipe.slot.RecipeInputSlot; -import net.minecraft.core.component.DataComponentType; - -/** - * 必需的数据组件类型条目 - */ -public record RequiredEntry(RecipeInputSlot slot, DataComponentType component, boolean isNullable) { - /** - * 构建一个必需条目 - * - * @param slot 输入材料的槽位 - * @param component 数据组件类型 - * @param isNullable 是否可为 {@code null} - */ - public RequiredEntry { - } - - /** - * 构建一个必需条目 - * - * @param input 输入的槽位 - * @param component 数据组件类型 - * @param isNullable 是否可为 {@code null} - */ - public RequiredEntry(int input, DataComponentType component, boolean isNullable) { - this(RecipeInputSlot.input(input), component, isNullable); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/package-info.java index 3eff70bde5..10bff59eb7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/data/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.recipe.data; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/number/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/number/package-info.java index 1e45f38bc0..1290b17827 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/number/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/number/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.recipe.number; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/RecipeResult.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/RecipeResult.java index 04617741e4..b84a51c2f5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/RecipeResult.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/RecipeResult.java @@ -6,8 +6,6 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.anvilcraft.lib.v2.codec.CodecUtil; -import dev.anvilcraft.lib.v2.codec.StreamCodecUtil; import dev.dubhe.anvilcraft.api.recipe.data.ICustomDataComponent; import dev.dubhe.anvilcraft.api.recipe.result.modifier.ApplyData; import dev.dubhe.anvilcraft.api.recipe.result.modifier.ChangeDataType; @@ -23,17 +21,18 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.level.ItemLike; import org.jetbrains.annotations.Unmodifiable; import java.util.List; -public record RecipeResult(Item result, @Unmodifiable List modifiers) { +public record RecipeResult(ItemStackTemplate result, @Unmodifiable List modifiers) { public static final MapCodec DIRECT_CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( - CodecUtil.ITEM + ItemStackTemplate.CODEC .fieldOf("result") .forGetter(RecipeResult::result), IResultModifier.CODEC @@ -41,13 +40,13 @@ public record RecipeResult(Item result, @Unmodifiable List modi .optionalFieldOf("modifiers", List.of()) .forGetter(RecipeResult::modifiers) ).apply(ins, RecipeResult::new)); - public static final Codec INLINE_CODEC = CodecUtil.ITEM.xmap(RecipeResult::new, RecipeResult::result); + public static final Codec INLINE_CODEC = ItemStackTemplate.CODEC.xmap(RecipeResult::new, RecipeResult::result); public static final Codec CODEC = Codec.either(RecipeResult.DIRECT_CODEC.codec(), RecipeResult.INLINE_CODEC).xmap( Either::unwrap, result -> result.modifiers.isEmpty() ? Either.right(result) : Either.left(result) ); public static final MapCodec> LIST_DIRECT_CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( - CodecUtil.ITEM + ItemStackTemplate.CODEC .listOf() .fieldOf("items") .forGetter(items -> Lists.transform(items, RecipeResult::result)), @@ -55,7 +54,7 @@ public record RecipeResult(Item result, @Unmodifiable List modi .listOf() .optionalFieldOf("modifiers", List.of()) .forGetter(items -> items.getFirst().modifiers()) - ).apply(ins, (items, modifiers) -> Lists.transform(items, item -> new RecipeResult(item, modifiers)))); + ).apply(ins, RecipeResult::constructFromList)); public static final Codec> LIST_CODEC = Codec .either(RecipeResult.LIST_DIRECT_CODEC.codec(), RecipeResult.CODEC.listOf()) .xmap( @@ -71,27 +70,26 @@ public record RecipeResult(Item result, @Unmodifiable List modi } ); public static final StreamCodec STREAM_CODEC = StreamCodec.composite( - StreamCodecUtil.ITEM, + ItemStackTemplate.STREAM_CODEC, RecipeResult::result, IResultModifier.STREAM_CODEC.apply(ByteBufCodecs.list()), RecipeResult::modifiers, RecipeResult::new ); - public RecipeResult(Item result) { + public RecipeResult(ItemStackTemplate result) { this(result, List.of()); } public RecipeResult(Item result, List modifiers) { - this.result = result; - this.modifiers = modifiers; + this(new ItemStackTemplate(result), modifiers); } public static Builder builder() { return new Builder(); } - public static RecipeResult.Builder simple(ItemLike result) { + public static Builder simple(ItemLike result) { return RecipeResult.builder().result(result.asItem()); } @@ -182,7 +180,7 @@ public Builder removeAttribute(RemoveAttribute.Builder builder) { return this; } - public Builder removeAttribute(ResourceLocation... attrs) { + public Builder removeAttribute(Identifier... attrs) { return this.removeAttribute(RemoveAttribute.removeAttr(attrs)); } @@ -199,4 +197,8 @@ public RecipeResult build() { return new RecipeResult(this.result, this.modifiers.build()); } } + + private static List constructFromList(List items, List modifiers) { + return Lists.transform(items, item -> new RecipeResult(item, modifiers)); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/ResultContext.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/ResultContext.java index 30972ab42e..f5efc3de31 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/ResultContext.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/ResultContext.java @@ -8,8 +8,8 @@ import net.minecraft.core.component.DataComponentType; import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; +import org.jspecify.annotations.Nullable; import java.util.Map; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/ChangeDataType.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/ChangeDataType.java index 69471c9231..827af75c77 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/ChangeDataType.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/ChangeDataType.java @@ -13,14 +13,14 @@ import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; /** * 复制指定输入物品的数据,并将其粘贴到另一个数据组件类型下。 */ public record ChangeDataType(RecipeInputSlot input, DataComponentType orig, ICustomDataComponent dest) implements IResultModifier { public static final MapCodec> CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( - ResourceLocation.CODEC + Identifier.CODEC .fieldOf("orig") .forGetter(ChangeDataType::origId), ICustomDataComponent.CODEC @@ -30,7 +30,7 @@ public record ChangeDataType(RecipeInputSlot input, DataComponentType orig .forGetter(ChangeDataType::input) ).apply(ins, ChangeDataType::new)); public static final StreamCodec> STREAM_CODEC = StreamCodec.composite( - ResourceLocation.STREAM_CODEC, + Identifier.STREAM_CODEC, ChangeDataType::origId, ICustomDataComponent.STREAM_CODEC, ChangeDataType::dest, @@ -39,10 +39,10 @@ public record ChangeDataType(RecipeInputSlot input, DataComponentType orig ChangeDataType::new ); - public ChangeDataType(ResourceLocation origId, ICustomDataComponent dest, RecipeInputSlot slot) { + public ChangeDataType(Identifier origId, ICustomDataComponent dest, RecipeInputSlot slot) { this( slot, - Util.cast(BuiltInRegistries.DATA_COMPONENT_TYPE.get(origId)), + Util.cast(BuiltInRegistries.DATA_COMPONENT_TYPE.getValue(origId)), dest ); } @@ -71,7 +71,7 @@ public Type type() { return ModResultModifierTypes.CHANGE_DATA_TYPE.get(); } - private ResourceLocation origId() { + private Identifier origId() { return BuiltInRegistries.DATA_COMPONENT_TYPE.getKey(this.orig); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/CopyData.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/CopyData.java index ccb58e60d0..5ec44754f6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/CopyData.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/CopyData.java @@ -6,18 +6,13 @@ import dev.dubhe.anvilcraft.api.recipe.data.ICustomDataComponent; import dev.dubhe.anvilcraft.api.recipe.data.NormalDataComponent; import dev.dubhe.anvilcraft.api.recipe.result.ResultContext; -import dev.dubhe.anvilcraft.api.recipe.slot.RecipeInputSlot; import dev.dubhe.anvilcraft.init.recipe.ModResultModifierTypes; import net.minecraft.core.component.DataComponentType; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.world.item.ItemStack; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * 复制指定输入物品的数据。 @@ -43,9 +38,8 @@ public static Builder copyData(ICustomDataComponent... types) { @Override public void modify(ResultContext ctx) { - Map cache = new HashMap<>(); for (ICustomDataComponent type : this.types) { - CopyData.wrapModify(ctx, type, cache); + CopyData.wrappedMake(ctx, type); } } @@ -54,20 +48,8 @@ public Type type() { return ModResultModifierTypes.COPY_DATA.get(); } - private static void wrapModify( - ResultContext ctx, ICustomDataComponent type, Map cache - ) { - var required = type.getRequired(); - List data = new ArrayList<>(); - for (var entry : required) { - ItemStack source = cache.computeIfAbsent(entry.slot(), slot -> IResultModifier.getInput(ctx, slot)); - Object value = source.get(entry.component()); - if (value == null && !entry.isNullable()) throw new IllegalArgumentException( - "The value of type %s cannot be null in the %s.".formatted(entry.component(), entry.slot().getSerializedName()) - ); - data.add(value); - } - type.applyToStack(ctx.getResult(), type.make(data)); + private static void wrappedMake(ResultContext ctx, ICustomDataComponent type) { + type.applyToStack(ctx.getResult(), type.make(ctx)); } public static class Type implements IResultModifier.Type { diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/MergeData.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/MergeData.java index 403c828736..bdadbeffe1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/MergeData.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/MergeData.java @@ -6,18 +6,13 @@ import dev.dubhe.anvilcraft.api.recipe.data.ICustomDataComponent; import dev.dubhe.anvilcraft.api.recipe.data.NormalDataComponent; import dev.dubhe.anvilcraft.api.recipe.result.ResultContext; -import dev.dubhe.anvilcraft.api.recipe.slot.RecipeInputSlot; import dev.dubhe.anvilcraft.init.recipe.ModResultModifierTypes; import net.minecraft.core.component.DataComponentType; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.world.item.ItemStack; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * 复制并合并指定输入物品的数据。 @@ -46,9 +41,8 @@ public static Builder mergeData(ICustomDataComponent... types) { @Override public void modify(ResultContext ctx) { - Map cache = new HashMap<>(); for (ICustomDataComponent type : this.types) { - MergeData.wrapModify(ctx, type, cache); + MergeData.wrappedMake(ctx, type); } } @@ -57,19 +51,8 @@ public Type type() { return ModResultModifierTypes.MERGE_DATA.get(); } - private static void wrapModify( - ResultContext ctx, ICustomDataComponent type, Map cache - ) { - var required = type.getRequired(); - List data = new ArrayList<>(); - for (var entry : required) { - ItemStack source = cache.computeIfAbsent(entry.slot(), slot -> IResultModifier.getInput(ctx, slot)); - Object value = source.get(entry.component()); - if (value == null && !entry.isNullable()) throw new IllegalArgumentException( - "The value of type %s cannot be null in the %s.".formatted(entry.component(), entry.slot().getSerializedName())); - data.add(value); - } - T newData = type.make(data); + private static void wrappedMake(ResultContext ctx, ICustomDataComponent type) { + T newData = type.make(ctx); T oldData = ctx.getResult().get(type.getDataComponentType()); if (oldData != null && newData != null) { newData = type.merge(oldData, newData); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/RemoveAttribute.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/RemoveAttribute.java index 7ab39e327e..685b273cc1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/RemoveAttribute.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/RemoveAttribute.java @@ -9,7 +9,7 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.component.ItemAttributeModifiers; import java.util.List; @@ -19,15 +19,15 @@ * * @param attrs 包含指定的输入物品和将要删除的数据组件类型。 */ -public record RemoveAttribute(List attrs) implements IResultModifier { +public record RemoveAttribute(List attrs) implements IResultModifier { public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( - ResourceLocation.CODEC + Identifier.CODEC .listOf() .fieldOf("attrs") .forGetter(RemoveAttribute::attrs) ).apply(ins, RemoveAttribute::new)); public static final StreamCodec STREAM_CODEC = StreamCodec.composite( - ResourceLocation.STREAM_CODEC.apply(ByteBufCodecs.list()), + Identifier.STREAM_CODEC.apply(ByteBufCodecs.list()), RemoveAttribute::attrs, RemoveAttribute::new ); @@ -36,7 +36,7 @@ public static Builder builder() { return new Builder(); } - public static Builder removeAttr(ResourceLocation... attrs) { + public static Builder removeAttr(Identifier... attrs) { return new Builder().withAttrs(attrs); } @@ -67,21 +67,21 @@ public StreamCodec streamCodec() { } public static class Builder { - private final ImmutableList.Builder attrs = ImmutableList.builder(); + private final ImmutableList.Builder attrs = ImmutableList.builder(); - public Builder withAttr(ResourceLocation attr) { + public Builder withAttr(Identifier attr) { this.attrs.add(attr); return this; } - public Builder withAttrs(ResourceLocation... attrs) { - for (ResourceLocation attr : attrs) { + public Builder withAttrs(Identifier... attrs) { + for (Identifier attr : attrs) { this.withAttr(attr); } return this; } - public Builder withAttrs(List attrs) { + public Builder withAttrs(List attrs) { this.attrs.addAll(attrs); return this; } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/package-info.java index 8e405f1bf9..cfeda52efe 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/modifier/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.recipe.result.modifier; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/package-info.java index 57195a4b86..169f2c045c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/result/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.recipe.result; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/recipe/slot/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/recipe/slot/package-info.java index ec3b52d2b6..b046f79c13 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/recipe/slot/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/recipe/slot/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.recipe.slot; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBERenderingPipeline.java b/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBERenderingPipeline.java deleted file mode 100644 index 9c93e3c165..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBERenderingPipeline.java +++ /dev/null @@ -1,82 +0,0 @@ -package dev.dubhe.anvilcraft.api.rendering; - -import lombok.Getter; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.block.entity.BlockEntity; -import org.joml.Matrix4f; - -import java.util.ArrayDeque; -import java.util.HashMap; -import java.util.Map; -import java.util.Queue; - -public class CacheableBERenderingPipeline { - @Getter - private static CacheableBERenderingPipeline instance; - private final ClientLevel level; - private final Queue pendingCompiles = new ArrayDeque<>(); - private final Queue pendingUploads = new ArrayDeque<>(); - private final Map renderRegions = new HashMap<>(); - private boolean valid = true; - - public RenderRegion getRenderRegion(ChunkPos chunkPos) { - if (renderRegions.containsKey(chunkPos)) { - return renderRegions.get(chunkPos); - } - RenderRegion renderRegion = new RenderRegion(chunkPos, this); - renderRegions.put(chunkPos, renderRegion); - return renderRegion; - } - - public CacheableBERenderingPipeline(ClientLevel level) { - this.level = level; - } - - public void runTasks() { - while (!pendingCompiles.isEmpty() && valid) { - pendingCompiles.poll().run(); - } - while (!pendingUploads.isEmpty() && valid) { - pendingUploads.poll().run(); - } - } - - public static void updateLevel(ClientLevel level) { - if (instance != null) { - instance.releaseBuffers(); - } - instance = new CacheableBERenderingPipeline(level); - } - - public void blockRemoved(BlockEntity be) { - ChunkPos chunkPos = new ChunkPos(be.getBlockPos()); - getRenderRegion(chunkPos).blockRemoved(be); - } - - public void update(BlockEntity be) { - ChunkPos chunkPos = new ChunkPos(be.getBlockPos()); - getRenderRegion(chunkPos).update(be); - } - - public void submitUploadTask(Runnable task) { - pendingUploads.add(task); - } - - public void submitCompileTask(Runnable task) { - pendingCompiles.add(task); - } - - public void releaseBuffers() { - renderRegions.values().forEach(RenderRegion::releaseBuffers); - valid = false; - } - - public void renderBloomed(Matrix4f frustumMatrix, Matrix4f projectionMatrix) { - renderRegions.values().forEach(it -> it.renderBloomed(frustumMatrix, projectionMatrix)); - } - - public void render(Matrix4f frustumMatrix, Matrix4f projectionMatrix) { - renderRegions.values().forEach(it -> it.render(frustumMatrix, projectionMatrix)); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderer.java b/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderer.java deleted file mode 100644 index 0bc1c0e225..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderer.java +++ /dev/null @@ -1,13 +0,0 @@ -package dev.dubhe.anvilcraft.api.rendering; - -import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.world.level.block.entity.BlockEntity; - -public interface CacheableBlockEntityRenderer { - void render( - T cacheableBlockEntity, - MultiBufferSource.BufferSource buffer, - PoseStack poseStack - ); -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderers.java b/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderers.java deleted file mode 100644 index c0fc129ea4..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CacheableBlockEntityRenderers.java +++ /dev/null @@ -1,30 +0,0 @@ -package dev.dubhe.anvilcraft.api.rendering; - -import dev.dubhe.anvilcraft.client.renderer.laser.LaserRenderer; -import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; - -import java.util.HashMap; -import java.util.Map; - -public class CacheableBlockEntityRenderers { - private static final Map, CacheableBlockEntityRenderer> RENDERERS = new HashMap<>(); - - public static void register( - BlockEntityType type, - CacheableBlockEntityRenderer renderProvider - ) { - RENDERERS.put(type, renderProvider); - } - - public static CacheableBlockEntityRenderer get(BlockEntityType type) { - return RENDERERS.get(type); - } - - static { - LaserRenderer laserRenderer = new LaserRenderer(); - RENDERERS.put(ModBlockEntities.RUBY_LASER.get(), laserRenderer); - RENDERERS.put(ModBlockEntities.RUBY_PRISM.get(), laserRenderer); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CompileResult.java b/src/main/java/dev/dubhe/anvilcraft/api/rendering/CompileResult.java deleted file mode 100644 index 025cb852d2..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/rendering/CompileResult.java +++ /dev/null @@ -1,60 +0,0 @@ -package dev.dubhe.anvilcraft.api.rendering; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.VertexBuffer; -import com.mojang.blaze3d.vertex.VertexFormat; -import lombok.EqualsAndHashCode; -import net.minecraft.client.renderer.RenderType; -import org.lwjgl.opengl.GL15; -import org.lwjgl.opengl.GL15C; -import org.lwjgl.system.MemoryUtil; - -@EqualsAndHashCode -final class CompileResult { - private static final MemoryUtil.MemoryAllocator ALLOCATOR = MemoryUtil.getAllocator(false); - private final RenderType renderType; - private final int vertexCount; - private final int vertexSize; - private final long vertexBufferPtr; - final int indexCount; - private boolean freed = false; - - CompileResult( - RenderType renderType, - int vertexCount, - int vertexSize, - long vertexBufferPtr, - int indexCount - ) { - this.renderType = renderType; - this.vertexCount = vertexCount; - this.vertexSize = vertexSize; - this.vertexBufferPtr = vertexBufferPtr; - this.indexCount = indexCount; - } - - void upload(VertexBuffer vertexBuffer) { - if (freed) return; - final VertexFormat.Mode mode = renderType.mode; - vertexBuffer.bind(); - if (vertexBuffer.format != null) { - vertexBuffer.format.clearBufferState(); - } - GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vertexBuffer.vertexBufferId); - renderType.format.setupBufferState(); - vertexBuffer.format = renderType.format; - GL15C.nglBufferData(GL15.GL_ARRAY_BUFFER, (long) vertexCount * vertexSize, vertexBufferPtr, GL15.GL_STATIC_DRAW); - RenderSystem.AutoStorageIndexBuffer indexBuffer = RenderSystem.getSequentialBuffer(mode); - if (indexBuffer != vertexBuffer.sequentialIndices || !indexBuffer.hasStorage(indexCount)) { - indexBuffer.bind(indexCount); - } - vertexBuffer.sequentialIndices = indexBuffer; - VertexBuffer.unbind(); - } - - void free() { - if (freed) return; - ALLOCATOR.free(vertexBufferPtr); - freed = true; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/rendering/FullyBufferedBufferSource.java b/src/main/java/dev/dubhe/anvilcraft/api/rendering/FullyBufferedBufferSource.java deleted file mode 100644 index f221bb0024..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/rendering/FullyBufferedBufferSource.java +++ /dev/null @@ -1,92 +0,0 @@ -package dev.dubhe.anvilcraft.api.rendering; - -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.ByteBufferBuilder; -import com.mojang.blaze3d.vertex.MeshData; -import com.mojang.blaze3d.vertex.VertexBuffer; -import com.mojang.blaze3d.vertex.VertexConsumer; -import it.unimi.dsi.fastutil.objects.Reference2IntMap; -import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import org.lwjgl.system.MemoryUtil; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Consumer; -import java.util.function.Function; - -public class FullyBufferedBufferSource extends MultiBufferSource.BufferSource implements AutoCloseable { - private static final MemoryUtil.MemoryAllocator ALLOCATOR = MemoryUtil.getAllocator(false); - private final Map byteBuffers = new HashMap<>(); - private final Map bufferBuilders = new HashMap<>(); - final Reference2IntMap indexCountMap = new Reference2IntOpenHashMap<>(); - - public FullyBufferedBufferSource() { - super(null, null); - } - - private ByteBufferBuilder getByteBuffer(RenderType renderType) { - return byteBuffers.computeIfAbsent(renderType, it -> new ByteBufferBuilder(786432)); - } - - @Override - public VertexConsumer getBuffer(RenderType renderType) { - return bufferBuilders.computeIfAbsent( - renderType, - it -> new BufferBuilder(getByteBuffer(it), it.mode, it.format) - ); - } - - public boolean isEmpty() { - return !bufferBuilders.isEmpty() && bufferBuilders.values().stream().noneMatch(it -> it.vertices > 0); - } - - @Override - public void endBatch(RenderType renderType) { - } - - public void upload( - Function vertexBufferGetter, - Consumer runner - ) { - for (RenderType renderType : bufferBuilders.keySet()) { - runner.accept(() -> { - BufferBuilder bufferBuilder = bufferBuilders.get(renderType); - ByteBufferBuilder byteBuffer = byteBuffers.get(renderType); - long ptr = byteBuffer.pointer; - int compiledVertices = bufferBuilder.vertices * renderType.format.getVertexSize(); - if (compiledVertices >= 0) { - long allocated = ALLOCATOR.malloc(compiledVertices); - MemoryUtil.memCopy(ptr, allocated, compiledVertices); - MeshData mesh = bufferBuilder.build(); - if (mesh != null) { - mesh.close(); - } - CompileResult compileResult = new CompileResult( - renderType, - bufferBuilder.vertices, - renderType.format.getVertexSize(), - allocated, - renderType.mode.indexCount(bufferBuilder.vertices) - ); - indexCountMap.put(renderType, renderType.mode.indexCount(bufferBuilder.vertices)); - compileResult.upload(vertexBufferGetter.apply(renderType)); - compileResult.free(); - } - byteBuffer.close(); - bufferBuilders.remove(renderType); - byteBuffers.remove(renderType); - }); - } - } - - public void close(RenderType renderType) { - ByteBufferBuilder builder = byteBuffers.get(renderType); - builder.close(); - } - - public void close() { - byteBuffers.keySet().forEach(this::close); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/rendering/RenderRegion.java b/src/main/java/dev/dubhe/anvilcraft/api/rendering/RenderRegion.java deleted file mode 100644 index 38930fdbbe..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/rendering/RenderRegion.java +++ /dev/null @@ -1,205 +0,0 @@ -package dev.dubhe.anvilcraft.api.rendering; - -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.shaders.Uniform; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexBuffer; -import com.mojang.blaze3d.vertex.VertexFormat; -import dev.dubhe.anvilcraft.client.init.ModRenderTypes; -import dev.dubhe.anvilcraft.client.renderer.RenderState; -import it.unimi.dsi.fastutil.objects.Reference2IntMap; -import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.ShaderInstance; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.phys.Vec3; -import org.joml.Matrix4f; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL15; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -public class RenderRegion { - public static final RenderType[] FORCED_ORDER = { - RenderType.SOLID, - ModRenderTypes.LASER, - RenderType.TRANSLUCENT, - }; - public static final List BLOOM_RENDERTYPES = List.of( - ModRenderTypes.LASER - ); - private final ChunkPos chunkPos; - private final Map buffers = new HashMap<>(); - private Reference2IntMap indexCountMap = new Reference2IntOpenHashMap<>(); - private final Set blockEntityList = new HashSet<>(); - private final CacheableBERenderingPipeline pipeline; - private final Minecraft minecraft = Minecraft.getInstance(); - private RebuildTask lastRebuildTask; - - private boolean isEmpty = true; - - public RenderRegion(ChunkPos chunkPos, CacheableBERenderingPipeline pipeline) { - this.chunkPos = chunkPos; - this.pipeline = pipeline; - } - - public void update(BlockEntity be) { - if (lastRebuildTask != null) { - lastRebuildTask.cancel(); - } - blockEntityList.removeIf(BlockEntity::isRemoved); - if (be.isRemoved()) { - blockEntityList.remove(be); - pipeline.submitCompileTask(new RebuildTask()); - return; - } - blockEntityList.add(be); - pipeline.submitCompileTask(new RebuildTask()); - } - - public void blockRemoved(BlockEntity be) { - if (lastRebuildTask != null) { - lastRebuildTask.cancel(); - } - blockEntityList.remove(be); - blockEntityList.removeIf(BlockEntity::isRemoved); - pipeline.submitCompileTask(new RebuildTask()); - } - - public void renderBloomed(Matrix4f frustumMatrix, Matrix4f projectionMatrix) { - renderInternal(frustumMatrix, projectionMatrix, BLOOM_RENDERTYPES, RenderState::bloomStage); - } - - public void render(Matrix4f frustumMatrix, Matrix4f projectionMatrix) { - renderInternal(frustumMatrix, projectionMatrix, buffers.keySet(), RenderState::levelStage); - } - - public VertexBuffer getBuffer(RenderType renderType) { - if (buffers.containsKey(renderType)) { - return buffers.get(renderType); - } - VertexBuffer vb = new VertexBuffer(VertexBuffer.Usage.STATIC); - buffers.put(renderType, vb); - return vb; - } - - private void renderInternal( - Matrix4f frustumMatrix, - Matrix4f projectionMatrix, - Collection renderTypes, - Runnable stateSwitcher - ) { - if (isEmpty) return; - RenderSystem.enableBlend(); - Window window = Minecraft.getInstance().getWindow(); - Vec3 cameraPosition = minecraft.gameRenderer.getMainCamera().getPosition(); - int renderDistance = Minecraft.getInstance().options.getEffectiveRenderDistance() * 16; - if (cameraPosition.distanceTo(new Vec3(chunkPos.x * 16, cameraPosition.y, chunkPos.z * 16)) > renderDistance) { - return; - } - List allRenderTypes = new ArrayList<>(renderTypes); - for (int i = FORCED_ORDER.length - 1; i >= 0; i--) { - RenderType type = FORCED_ORDER[i]; - if (allRenderTypes.contains(type)) { - allRenderTypes.remove(type); - allRenderTypes.addFirst(type); - } - } - for (RenderType renderType : allRenderTypes) { - VertexBuffer vb = buffers.get(renderType); - if (vb == null) continue; - stateSwitcher.run(); - renderLayer(renderType, vb, frustumMatrix, projectionMatrix, cameraPosition, window); - } - } - - public void releaseBuffers() { - buffers.values().forEach(VertexBuffer::close); - } - - private void renderLayer( - RenderType renderType, - VertexBuffer vertexBuffer, - Matrix4f frustumMatrix, - Matrix4f projectionMatrix, - Vec3 cameraPosition, - Window window - ) { - int indexCount = indexCountMap.getInt(renderType); - if (indexCount <= 0) return; - renderType.setupRenderState(); - ShaderInstance shader = RenderSystem.getShader(); - shader.setDefaultUniforms(VertexFormat.Mode.QUADS, frustumMatrix, projectionMatrix, window); - shader.apply(); - Uniform uniform = shader.CHUNK_OFFSET; - if (uniform != null) { - uniform.set( - (float) -cameraPosition.x, - (float) -cameraPosition.y, - (float) -cameraPosition.z - ); - uniform.upload(); - } - vertexBuffer.bind(); - GL11.glDrawElements(GL15.GL_TRIANGLES, indexCount, vertexBuffer.sequentialIndices.type().asGLType, 0L); - VertexBuffer.unbind(); - if (uniform != null) { - uniform.set(0.0F, 0.0F, 0.0F); - } - renderType.clearRenderState(); - } - - private class RebuildTask implements Runnable { - private boolean cancelled = false; - - @Override - public void run() { - lastRebuildTask = this; - PoseStack poseStack = new PoseStack(); - RenderRegion.this.isEmpty = true; - FullyBufferedBufferSource bufferSource = new FullyBufferedBufferSource(); - for (BlockEntity be : blockEntityList) { - if (cancelled) { - bufferSource.close(); - return; - } - CacheableBlockEntityRenderer renderer = CacheableBlockEntityRenderers.get(be.getType()); - if (renderer == null) continue; - poseStack.pushPose(); - BlockPos pos = be.getBlockPos(); - poseStack.translate( - pos.getX(), - pos.getY(), - pos.getZ() - ); - renderer.render( - be, - bufferSource, - poseStack - ); - poseStack.popPose(); - } - RenderRegion.this.isEmpty = bufferSource.isEmpty(); - bufferSource.upload( - RenderRegion.this::getBuffer, - pipeline::submitUploadTask - ); - RenderRegion.this.indexCountMap = bufferSource.indexCountMap; - lastRebuildTask = null; - } - - void cancel() { - cancelled = true; - } - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/rendering/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/rendering/package-info.java deleted file mode 100644 index 667d65de2b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/rendering/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.api.rendering; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java b/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java index 77723b66d5..6f977d8c17 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java @@ -10,6 +10,7 @@ import dev.dubhe.anvilcraft.api.heat.HeatRecorder; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.util.AabbUtil; +import dev.dubhe.anvilcraft.util.PacketDistributingHelper; import io.netty.buffer.ByteBuf; import it.unimi.dsi.fastutil.ints.IntIntPair; import net.minecraft.core.BlockPos; @@ -19,7 +20,7 @@ import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket; -import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.ProblemReporter; import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.DirectionalPlaceContext; @@ -28,6 +29,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.redstone.Orientation; +import net.minecraft.world.level.storage.TagValueInput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.apache.commons.lang3.tuple.Triple; @@ -124,7 +127,7 @@ private void calculateSide(Direction side) { } public void setBlock(Level level, BlockPos center, Entity entity) { - if (level.isClientSide) return; + if (level.isClientSide()) return; for (SlidingBlockInfo info : this.blocks) { BlockPos pos = info.getPos(center); BlockState state = info.state(); @@ -154,14 +157,13 @@ public void setBlock(Level level, BlockPos center, Entity entity) { state = Block.updateFromNeighbourShapes(state, level, pos); if (!level.setBlock(pos, state, Block.UPDATE_ALL)) continue; - Optional.ofNullable(level.getBlockEntity(pos)) - .ifPresent(entity1 -> entity1.loadCustomOnly(info.entityData(), level.registryAccess())); - level.neighborChanged(pos, state.getBlock(), pos); - - ((ServerLevel) level) - .getChunkSource() - .chunkMap - .broadcast(entity, new ClientboundBlockUpdatePacket(pos, level.getBlockState(pos))); + Optional.ofNullable(level.getBlockEntity(pos)).ifPresent(entity1 -> entity1.loadCustomOnly( + TagValueInput.create(ProblemReporter.DISCARDING, level.registryAccess(), info.entityData()) + )); + level.neighborChanged(pos, state.getBlock(), Orientation.random(level.getRandom())); + + + PacketDistributingHelper.sendToPlayersTrackingEntity(entity, new ClientboundBlockUpdatePacket(pos, level.getBlockState(pos))); } entity.discard(); } @@ -172,7 +174,7 @@ public String toString() { } public List blocks() { - return blocks; + return this.blocks; } @Override @@ -184,6 +186,6 @@ public boolean equals(Object obj) { @Override public int hashCode() { - return Objects.hash(blocks); + return Objects.hash(this.blocks); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/sliding/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/sliding/package-info.java index d7b6de1da8..03d3af3e98 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/sliding/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/sliding/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.sliding; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/sound/ISoundEventListener.java b/src/main/java/dev/dubhe/anvilcraft/api/sound/ISoundEventListener.java index a99c8d021b..e4d68db604 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/sound/ISoundEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/sound/ISoundEventListener.java @@ -1,11 +1,11 @@ package dev.dubhe.anvilcraft.api.sound; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.phys.Vec3; /** * 声音事件监听器 */ public interface ISoundEventListener { - boolean shouldMute(ResourceLocation sound, Vec3 pos); + boolean shouldMute(Identifier sound, Vec3 pos); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java b/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java index b843430668..4d36ae827f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java @@ -1,16 +1,16 @@ package dev.dubhe.anvilcraft.api.sound; import lombok.Getter; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; +import org.jspecify.annotations.Nullable; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; -import javax.annotation.Nullable; @Getter public class SoundHelper { @@ -18,7 +18,7 @@ public class SoundHelper { private final Map, List> eventListeners = new HashMap<>(); - public boolean shouldMute(@Nullable Level level, ResourceLocation sound, Vec3 pos) { + public boolean shouldMute(@Nullable Level level, Identifier sound, Vec3 pos) { if (level == null) return false; return this.eventListeners.computeIfAbsent(level.dimension(), k -> new CopyOnWriteArrayList<>()) .stream() diff --git a/src/main/java/dev/dubhe/anvilcraft/api/sound/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/sound/package-info.java index 928564f770..9d4cd4891d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/sound/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/sound/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.sound; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/taslatower/package-info.java deleted file mode 100644 index d966050196..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.api.taslatower; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/HasCustomNameFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/HasCustomNameFilter.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/HasCustomNameFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/HasCustomNameFilter.java index 1cc4abce5c..3db0b702cd 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/HasCustomNameFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/HasCustomNameFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsBabyFriendlyFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsBabyFriendlyFilter.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsBabyFriendlyFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsBabyFriendlyFilter.java index 2ea487dc94..f58f987c16 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsBabyFriendlyFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsBabyFriendlyFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsEntityIdFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsEntityIdFilter.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsEntityIdFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsEntityIdFilter.java index d150b01995..805e74ab14 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsEntityIdFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsEntityIdFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsFriendlyFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsFriendlyFilter.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsFriendlyFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsFriendlyFilter.java index 5d17a1c40f..0953b65a96 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsFriendlyFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsFriendlyFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsOnVehicleFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsOnVehicleFilter.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsOnVehicleFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsOnVehicleFilter.java index c6ef0a0a4a..bc265ca2d1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsOnVehicleFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsOnVehicleFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPetFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPetFilter.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPetFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPetFilter.java index 27fd80ddcf..1631e9704d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPetFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPetFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPlayerFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPlayerFilter.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPlayerFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPlayerFilter.java index 882be749f8..e2e010a5a2 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPlayerFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPlayerFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPlayerIdFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPlayerIdFilter.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPlayerIdFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPlayerIdFilter.java index 37aa5dbb37..f675ed3b6e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/IsPlayerIdFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/IsPlayerIdFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import lombok.Getter; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/TeslaFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/TeslaFilter.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/api/taslatower/TeslaFilter.java rename to src/main/java/dev/dubhe/anvilcraft/api/teslatower/TeslaFilter.java index c1d6720ae8..dc96144d55 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/taslatower/TeslaFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/teslatower/TeslaFilter.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.api.taslatower; +package dev.dubhe.anvilcraft.api.teslatower; import io.netty.buffer.ByteBuf; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/thought/Thinkable.java b/src/main/java/dev/dubhe/anvilcraft/api/thought/Thinkable.java index a6311788ab..2a50264ca1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/thought/Thinkable.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/thought/Thinkable.java @@ -3,21 +3,16 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.network.chat.Component; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; -import net.neoforged.neoforgespi.Environment; +import net.neoforged.fml.loading.FMLLoader; -import java.util.List; +import java.util.function.Consumer; public interface Thinkable { - @OnlyIn(Dist.CLIENT) - default void appendHoverText(List tooltipComponents) { - if (!Environment.get().getDist().isClient()) { - return; - } + default void appendHoverText(Consumer consumer) { + if (!FMLLoader.getCurrent().getDist().isClient()) return; long lastThoughtTime = ThoughtManager.getLastThoughtTime(); if (lastThoughtTime <= 0) { - tooltipComponents.add( + consumer.accept( Component.translatable( "tooltip.anvilcraft.thought", Component.keybind("key.anvilcraft.thought") @@ -29,16 +24,15 @@ default void appendHoverText(List tooltipComponents) { long curTime = minecraft.gui.getGuiTicks(); long deltaTime = curTime - lastThoughtTime; final int maxPlaceholderCount = 20; - final double maxSeconds = ThoughtManager.getMAX_SECONDS(); + final double maxSeconds = ThoughtManager.getMaxSeconds(); int placeholderCount = (int) Math.floor(Math.min(deltaTime, 20 * maxSeconds) / (20 * maxSeconds) * maxPlaceholderCount); int blankCount = maxPlaceholderCount - placeholderCount; StringBuilder builder = new StringBuilder("["); - builder.append("||".repeat(Math.max(0, placeholderCount))); - builder.append(" ".repeat(Math.max(0, blankCount))); - tooltipComponents.add(Component.literal(builder.append("]").toString()).withStyle(ChatFormatting.GRAY)); + builder.repeat("||", Math.max(0, placeholderCount)); + builder.repeat(" ", Math.max(0, blankCount)); + consumer.accept(Component.literal(builder.append("]").toString()).withStyle(ChatFormatting.GRAY)); } - @OnlyIn(Dist.CLIENT) default void onThought() { } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/thought/ThoughtManager.java b/src/main/java/dev/dubhe/anvilcraft/api/thought/ThoughtManager.java index 664d8f226b..5ccbe1499a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/thought/ThoughtManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/thought/ThoughtManager.java @@ -9,9 +9,12 @@ public class ThoughtManager { private static boolean onThought = false; @Getter private static long lastThoughtTime = -1L; - @Getter private static final double MAX_SECONDS = 1.0; + public static double getMaxSeconds() { + return ThoughtManager.MAX_SECONDS; + } + public static void onThought() { boolean checked = ThoughtManager.check(); if (!checked) { @@ -25,7 +28,7 @@ public static void onThought() { private static boolean check() { if (!(Minecraft.getInstance().screen instanceof AbstractContainerScreen screen)) return false; - Slot slot = screen.getSlotUnderMouse(); + Slot slot = screen.getHoveredSlot(); if (slot == null) return false; return slot.hasItem() && slot.getItem().getItem() instanceof Thinkable; } @@ -38,7 +41,7 @@ public static void onEndThought() { public static void onPostThought() { if (!(Minecraft.getInstance().screen instanceof AbstractContainerScreen screen)) return; - Slot slot = screen.getSlotUnderMouse(); + Slot slot = screen.getHoveredSlot(); if (slot == null) return; if (slot.hasItem() && slot.getItem().getItem() instanceof Thinkable thinkable) { thinkable.onThought(); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/thought/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/thought/package-info.java index 1ce84784d2..26b57df5e9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/thought/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/thought/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.thought; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/HudTooltipManager.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/HudTooltipManager.java index 73c5e34991..73e29335fe 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/HudTooltipManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/HudTooltipManager.java @@ -21,7 +21,7 @@ import dev.dubhe.anvilcraft.init.item.ModItems; 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.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; @@ -29,19 +29,17 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.VoxelShape; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import static dev.dubhe.anvilcraft.api.tooltip.TooltipRenderHelper.renderOutline; -import static dev.dubhe.anvilcraft.api.tooltip.TooltipRenderHelper.renderTooltipWithItemIcon; - public class HudTooltipManager { public static final HudTooltipManager INSTANCE = new HudTooltipManager(); private static final int BACKGROUND_COLOR = 0xCC100010; - private static final int BORDER_COLOR_TOP = 0x505000ff; - private static final int BORDER_COLOR_BOTTOM = 0x5028007f; + private static final int BORDER_COLOR_TOP = 0x505000Ff; + private static final int BORDER_COLOR_BOTTOM = 0x5028007F; private final List blockProviders = new ArrayList<>(); private final List blockEntityProviders = new ArrayList<>(); private final List affectRangeProviders = new ArrayList<>(); @@ -65,26 +63,26 @@ public class HudTooltipManager { } public void registerAffectRange(AffectRangeProviderImpl affectRangeProvider) { - affectRangeProviders.add(affectRangeProvider); + this.affectRangeProviders.add(affectRangeProvider); } public void registerBlockTooltip(ITooltipProvider.BlockTooltipProvider provider) { - blockProviders.add(provider); + this.blockProviders.add(provider); } public void registerBlockEntityTooltip(ITooltipProvider.BlockEntityTooltipProvider provider) { - blockEntityProviders.add(provider); + this.blockEntityProviders.add(provider); } public void registerHandHeldItemTooltip(IHandHeldItemTooltipProvider provider) { - handItemProviders.add(provider); + this.handItemProviders.add(provider); } /** * 渲染方块的tooltip */ public void renderTooltip( - GuiGraphics guiGraphics, + GuiGraphicsExtractor graphics, Level level, BlockPos pos, BlockState state, @@ -92,16 +90,15 @@ public void renderTooltip( int screenWidth, int screenHeight ) { - if (state == null) return; final int tooltipPosX = screenWidth / 2 + 10; final int tooltipPosY = screenHeight / 2 + 10; Font font = Minecraft.getInstance().font; - ITooltipProvider.BlockTooltipProvider currentProvider = determineBlockTooltipProvider(level, pos, state); + ITooltipProvider.BlockTooltipProvider currentProvider = this.determineBlockTooltipProvider(level, pos, state); if (currentProvider == null) return; List tooltip = currentProvider.tooltip(level, pos, state); - if (tooltip == null || tooltip.isEmpty()) return; - renderTooltipWithItemIcon( - guiGraphics, + if (tooltip.isEmpty()) return; + TooltipRenderHelper.renderTooltipWithItemIcon( + graphics, font, currentProvider.icon(level, pos, state), tooltip, @@ -117,22 +114,21 @@ public void renderTooltip( * 渲染方块实体的tooltip */ public void renderTooltip( - GuiGraphics guiGraphics, + GuiGraphicsExtractor graphics, BlockEntity entity, float partialTick, int screenWidth, int screenHeight ) { - if (entity == null) return; final int tooltipPosX = screenWidth / 2 + 10; final int tooltipPosY = screenHeight / 2 + 10; Font font = Minecraft.getInstance().font; - ITooltipProvider.BlockEntityTooltipProvider currentProvider = determineBlockEntityTooltipProvider(entity); + ITooltipProvider.BlockEntityTooltipProvider currentProvider = this.determineBlockEntityTooltipProvider(entity); if (currentProvider == null) return; List tooltip = currentProvider.tooltip(entity); - if (tooltip == null || tooltip.isEmpty()) return; - renderTooltipWithItemIcon( - guiGraphics, + if (tooltip.isEmpty()) return; + TooltipRenderHelper.renderTooltipWithItemIcon( + graphics, font, currentProvider.icon(entity), tooltip, @@ -147,7 +143,7 @@ public void renderTooltip( /** * 渲染手持物品Tooltip */ - public void renderHandItemLevelTooltip( + public void submitHandItemInWorldTooltip( ItemStack itemStack, PoseStack poseStack, VertexConsumer consumer, @@ -155,7 +151,7 @@ public void renderHandItemLevelTooltip( double camY, double camZ ) { - IHandHeldItemTooltipProvider pv = determineHandHeldItemTooltipProvider(itemStack); + IHandHeldItemTooltipProvider pv = this.determineHandHeldItemTooltipProvider(itemStack); if (pv == null) return; pv.render(poseStack, consumer, itemStack, camX, camY, camZ); } @@ -164,15 +160,15 @@ public void renderHandItemLevelTooltip( * 渲染手持物品Hud Tooltip */ public void renderHandItemHudTooltip( - GuiGraphics guiGraphics, + GuiGraphicsExtractor graphics, ItemStack itemStack, float partialTick, int screenWidth, int screenHeight ) { - IHandHeldItemTooltipProvider pv = determineHandHeldItemTooltipProvider(itemStack); + IHandHeldItemTooltipProvider pv = this.determineHandHeldItemTooltipProvider(itemStack); if (pv == null) return; - pv.renderTooltip(guiGraphics, screenWidth, screenHeight); + pv.renderTooltip(graphics, screenWidth, screenHeight); } /** @@ -186,40 +182,36 @@ public void renderAffectRange( double camY, double camZ ) { - IAffectRangeProvider currentProvider = determineAffectRangeProvider(entity); + IAffectRangeProvider currentProvider = this.determineAffectRangeProvider(entity); if (currentProvider == null) return; VoxelShape shape = currentProvider.affectRange(entity); - if (shape == null) return; - renderOutline(poseStack, consumer, camX, camY, camZ, BlockPos.ZERO, shape, 0xff00ffcc); + TooltipRenderHelper.renderOutline(poseStack, consumer, camX, camY, camZ, BlockPos.ZERO, shape, 0xff00Ffcc); } - private IHandHeldItemTooltipProvider determineHandHeldItemTooltipProvider(ItemStack itemStack) { - if (itemStack == null || itemStack.isEmpty()) return null; - return handItemProviders.stream() + private @Nullable IHandHeldItemTooltipProvider determineHandHeldItemTooltipProvider(ItemStack itemStack) { + if (itemStack.isEmpty()) return null; + return this.handItemProviders.stream() .filter(it -> it.accepts(itemStack)) .min(Comparator.comparingInt(IHandHeldItemTooltipProvider::priority)) .orElse(null); } - private ITooltipProvider.BlockTooltipProvider determineBlockTooltipProvider(Level level, BlockPos pos, BlockState state) { - if (state == null) return null; - return blockProviders.stream() + private ITooltipProvider.@Nullable BlockTooltipProvider determineBlockTooltipProvider(Level level, BlockPos pos, BlockState state) { + return this.blockProviders.stream() .filter(it -> it.accepts(level, pos, state)) .min(Comparator.comparingInt(ITooltipProvider::priority)) .orElse(null); } - private ITooltipProvider.BlockEntityTooltipProvider determineBlockEntityTooltipProvider(BlockEntity entity) { - if (entity == null) return null; - return blockEntityProviders.stream() + private ITooltipProvider.@Nullable BlockEntityTooltipProvider determineBlockEntityTooltipProvider(BlockEntity entity) { + return this.blockEntityProviders.stream() .filter(it -> it.accepts(entity)) .min(Comparator.comparingInt(ITooltipProvider::priority)) .orElse(null); } - private IAffectRangeProvider determineAffectRangeProvider(BlockEntity entity) { - if (entity == null) return null; - return affectRangeProviders.stream() + private @Nullable IAffectRangeProvider determineAffectRangeProvider(BlockEntity entity) { + return this.affectRangeProviders.stream() .filter(it -> it.accepts(entity)) .min(Comparator.comparingInt(IAffectRangeProvider::priority)) .orElse(null); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/ItemTooltipManager.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/ItemTooltipManager.java index 77fa9d73a9..5f16415712 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/ItemTooltipManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/ItemTooltipManager.java @@ -1,33 +1,27 @@ package dev.dubhe.anvilcraft.api.tooltip; import com.google.common.collect.Maps; -import dev.anvilcraft.lib.v2.util.ListUtil; -import dev.anvilcraft.lib.v2.util.Util; -import dev.dubhe.anvilcraft.client.AnvilCraftClient; -import dev.dubhe.anvilcraft.client.init.ModKeyMappings; import dev.dubhe.anvilcraft.init.block.ModBlocks; -import dev.dubhe.anvilcraft.init.item.ModComponents; import dev.dubhe.anvilcraft.init.item.ModFoodItems; import dev.dubhe.anvilcraft.init.item.ModItemTags; import dev.dubhe.anvilcraft.init.item.ModItems; -import dev.dubhe.anvilcraft.util.UnitUtil; import net.minecraft.ChatFormatting; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.ComponentUtils; -import net.minecraft.network.chat.contents.TranslatableContents; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; import java.util.Collections; import java.util.List; import java.util.Map; public class ItemTooltipManager { - + public static final Component SHIFT_TIP = Component.translatable( + "tooltip.anvilcraft.press_key", + "Shift" + ).withStyle(ChatFormatting.GRAY); private static final Map NORMAL = Maps.newHashMap(); private static final Map SHIFT = Maps.newHashMap(); @@ -180,14 +174,15 @@ public class ItemTooltipManager { NORMAL.put(ModBlocks.CHARGER.asItem(), "Charges items. Supports manual or automated input"); NORMAL.put(ModBlocks.DISCHARGER.asItem(), "Discharges capacitors. Supports manual or automated input"); NORMAL.put(ModBlocks.LASER_RECEIVER.asItem(), "Generates power and output signal from received lasers"); - NORMAL.put(ModBlocks.FROST_ANVIL.asItem(), "Wither proof"); - NORMAL.put(ModBlocks.FROST_GRINDSTONE.asItem(), "Wither proof"); - NORMAL.put(ModBlocks.FROST_SMITHING_TABLE.asItem(), "Wither proof"); - NORMAL.put(ModBlocks.FROST_METAL_BLOCK.asItem(), "Wither proof"); - NORMAL.put(ModBlocks.CUT_FROST_METAL_BLOCK.asItem(), "Wither proof"); - NORMAL.put(ModBlocks.CUT_FROST_METAL_PILLAR.asItem(), "Wither proof"); - NORMAL.put(ModBlocks.CUT_FROST_METAL_SLAB.asItem(), "Wither proof"); - NORMAL.put(ModBlocks.CUT_FROST_METAL_STAIRS.asItem(), "Wither proof"); + NORMAL.put(ModBlocks.FROST_ANVIL.asItem(), "Explosion proof"); + NORMAL.put(ModBlocks.FROST_GRINDSTONE.asItem(), "Explosion proof"); + NORMAL.put(ModBlocks.FROST_SMITHING_TABLE.asItem(), "Explosion proof"); + NORMAL.put(ModBlocks.FROST_METAL_BLOCK.asItem(), "Explosion proof"); + NORMAL.put(ModBlocks.CUT_FROST_METAL_BLOCK.asItem(), "Explosion proof"); + NORMAL.put(ModBlocks.CUT_FROST_METAL_PILLAR.asItem(), "Explosion proof"); + NORMAL.put(ModBlocks.CUT_FROST_METAL_SLAB.asItem(), "Explosion proof"); + NORMAL.put(ModBlocks.CUT_FROST_METAL_STAIRS.asItem(), "Explosion proof"); + NORMAL.put(ModFoodItems.PILL.asItem(), "Pills made together with potion to achieve corresponding effects, can be taken quickly"); SHIFT.put(ModBlocks.SPECTRAL_ANVIL.asItem(), "When the upper magnet is demagnetized, a phantom shadow is created and falls downward. " @@ -230,6 +225,10 @@ public class ItemTooltipManager { SHIFT.put(ModItems.TOTEM_OF_RAGE.asItem(), "Grants invulnerability and berserk on fatal damage. Death is inevitable after 1 minute"); SHIFT.put(ModItems.COMRADE_AMULET.asItem(), "Signable by players via right-click. Prevents damage from signed players"); + SHIFT.put(ModItems.AMULET_BOX.asItem(), """ + Stores multiple active amulets or totems + Right-click to store Totems in your inventory, and shift-right-click to retrieve the totems; + When holding, consume the totems in the box when needed, and after consuming the totem, you may receive a secret gift."""); Map allTooltips = Maps.newHashMap(); allTooltips.putAll(NORMAL); @@ -244,73 +243,22 @@ public class ItemTooltipManager { * * @param stack 需要添加工具提示的物品堆叠 * @param tooltip 提示内容 + * @param flags 工具提示标识 */ - public static void addTooltip(ItemStack stack, List tooltip) { + public static void addTooltip(ItemStack stack, List tooltip, TooltipFlag flags) { final Item item = stack.getItem(); - if (stack.has(ModComponents.STORED_ENERGY)) { - propertyTooltip( - "stored_energy", - tooltip, - ChatFormatting.GRAY, - UnitUtil.energyUnit(stack.getOrDefault(ModComponents.STORED_ENERGY, 0), Screen.hasShiftDown()) - ); - } - if (stack.has(ModComponents.MULTIPHASE)) { - if (AnvilCraftClient.CONFIG.showMultiphaseStoredId) { - propertyTooltip( - "multiphase.id", - tooltip, - 0xDD91FA, - stack.get(ModComponents.MULTIPHASE).id().toString() - ); - } - propertyTooltip( - "multiphase", - tooltip, - 0xDD91FA, - ModKeyMappings.SWITCH_PHASE.get().getKey().getDisplayName() - ); - } - if (stack.has(ModComponents.PROVIDENCE)) { - if (Screen.hasShiftDown()) { - propertyTooltip("providence.shifting", tooltip, 0xFFCB62, ComponentUtils.formatList( - List.of( - Component.translatable("enchantment.minecraft.fortune"), - Component.translatable("enchantment.minecraft.looting"), - Component.translatable("enchantment.anvilcraft.beheading"), - Component.translatable("enchantment.minecraft.thorns"), - Component.translatable("enchantment.minecraft.luck_of_the_sea") - ), ComponentUtils.DEFAULT_NO_STYLE_SEPARATOR)); - } else { - propertyTooltip( - "providence", tooltip, 0xFFCB62, - Minecraft.getInstance().options.keyShift.getKey().getDisplayName()); - } - } - if (stack.has(ModComponents.ETERNAL)) { - propertyTooltip("eternal", tooltip, 0xD3C5F6); - } - if (stack.has(ModComponents.FEROCIOUS)) { - propertyTooltip("ferocious", tooltip, 0xDD1212); - } - if (stack.has(ModComponents.MERCILESS)) { - propertyTooltip("merciless", tooltip, 0xB4F0F6); - } - if (stack.has(ModComponents.FIRE_REFORGING)) { - propertyTooltip("fire_reforging", tooltip, ChatFormatting.GOLD); - } if (NORMAL.containsKey(item)) { - tooltip.add(1, getItemTooltip(item)); + tooltip.add(1, ItemTooltipManager.getItemTooltip(item)); } if (SHIFT.containsKey(item)) { - if (Screen.hasShiftDown()) { - tooltip.add(1, getItemTooltip(item)); + if (flags.hasShiftDown()) { + tooltip.add(1, ItemTooltipManager.getItemTooltip(item)); } else { - tooltip.add(1, Component.translatable("tooltip.anvilcraft.press_key", "Shift").withStyle(ChatFormatting.GRAY)); + tooltip.add(1, SHIFT_TIP); } } if (stack.is(ModItemTags.REINFORCED_CONCRETE)) { - ResourceLocation key = BuiltInRegistries.ITEM.getKey(item); + Identifier key = BuiltInRegistries.ITEM.getKey(item); tooltip.add( 1, Component.translatable("tooltip.%s.item.reinforced_concrete".formatted(key.getNamespace())) @@ -320,71 +268,11 @@ public static void addTooltip(ItemStack stack, List tooltip) { } private static Component getItemTooltip(Item item) { - return Component.translatable(getTranslationKey(item)).withStyle(ChatFormatting.GRAY); + return Component.translatable(ItemTooltipManager.getTranslationKey(item)).withStyle(ChatFormatting.GRAY); } public static String getTranslationKey(Item item) { - ResourceLocation key = BuiltInRegistries.ITEM.getKey(item); + Identifier key = BuiltInRegistries.ITEM.getKey(item); return "tooltip.%s.item.%s".formatted(key.getNamespace(), key.getPath()); } - - private static void propertyTooltip(String propertyName, List tooltip, ChatFormatting color, Object... args) { - int i = 0; - for (int j = 0; j < tooltip.size(); j++) { - if (tooltip.get(j).getContents() instanceof TranslatableContents t && t.getKey().contains("enchantment") - && ListUtil.safelyGet(tooltip, j + 1) - .flatMap(tooltipI -> Util.castSafely(tooltipI.getContents(), TranslatableContents.class)) - .map(TranslatableContents::getKey) - .filter(key -> key.contains("enchantment")) - .isEmpty() - ) { - i = j; - break; - } - } - tooltip.add( - 1 + i, - Component.translatable("tooltip.anvilcraft.property.%s".formatted(propertyName), args).withStyle(color) - ); - } - - private static void propertyTooltip(String propertyName, List tooltip, int color) { - int i = 0; - for (int j = 0; j < tooltip.size(); j++) { - if (tooltip.get(j).getContents() instanceof TranslatableContents t && t.getKey().contains("enchantment") - && ListUtil.safelyGet(tooltip, j + 1) - .flatMap(tooltipI -> Util.castSafely(tooltipI.getContents(), TranslatableContents.class)) - .map(TranslatableContents::getKey) - .filter(key -> key.contains("enchantment")) - .isEmpty() - ) { - i = j; - break; - } - } - tooltip.add( - 1 + i, - Component.translatable("tooltip.anvilcraft.property.%s".formatted(propertyName)).withColor(color) - ); - } - - private static void propertyTooltip(String propertyName, List tooltip, int color, Object... args) { - int i = 0; - for (int j = 0; j < tooltip.size(); j++) { - if (tooltip.get(j).getContents() instanceof TranslatableContents t && t.getKey().contains("enchantment") - && ListUtil.safelyGet(tooltip, j + 1) - .flatMap(tooltipI -> Util.castSafely(tooltipI.getContents(), TranslatableContents.class)) - .map(TranslatableContents::getKey) - .filter(key -> key.contains("enchantment")) - .isEmpty() - ) { - i = j; - break; - } - } - tooltip.add( - 1 + i, - Component.translatable("tooltip.anvilcraft.property.%s".formatted(propertyName), args).withColor(color) - ); - } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/TooltipRenderHelper.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/TooltipRenderHelper.java index 87d6a7543e..af54901931 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/TooltipRenderHelper.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/TooltipRenderHelper.java @@ -3,7 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; 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.gui.screens.inventory.tooltip.ClientTooltipPositioner; import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner; @@ -30,6 +30,28 @@ public static void renderOutline( BlockPos offsetPos, VoxelShape shape, int color + ) { + renderOutline( + poseStack.last(), + consumer, + camX, + camY, + camZ, + offsetPos, + shape, + color + ); + } + + public static void renderOutline( + PoseStack.Pose poseStack, + VertexConsumer consumer, + double camX, + double camY, + double camZ, + BlockPos offsetPos, + VoxelShape shape, + int color ) { renderShape( poseStack, @@ -43,7 +65,7 @@ public static void renderOutline( } private static void renderShape( - PoseStack poseStack, + PoseStack.Pose pose, VertexConsumer consumer, VoxelShape shape, double x, @@ -51,7 +73,6 @@ private static void renderShape( double z, int color ) { - PoseStack.Pose pose = poseStack.last(); shape.forAllEdges((minX, minY, minZ, maxX, maxY, maxZ) -> { float dx = (float) (maxX - minX); float dy = (float) (maxY - minY); @@ -59,9 +80,11 @@ private static void renderShape( float distance = Mth.sqrt(dx * dx + dy * dy + dz * dz); consumer.addVertex(pose.pose(), (float) (minX + x), (float) (minY + y), (float) (minZ + z)) .setColor(color) + .setLineWidth(4f) .setNormal(pose.copy(), dx /= distance, dy /= distance, dz /= distance); consumer.addVertex(pose.pose(), (float) (maxX + x), (float) (maxY + y), (float) (maxZ + z)) .setColor(color) + .setLineWidth(4f) .setNormal(pose.copy(), dx, dy, dz); }); } @@ -69,7 +92,7 @@ private static void renderShape( /** * 渲染带图标的Tooltip * - * @param thiz GuiGraphics + * @param graphics GuiGraphicsExtractor * @param font 字体 * @param itemStack 图标物品 * @param lines Tooltip内容 @@ -77,7 +100,7 @@ private static void renderShape( * @param y y坐标 */ public static void renderTooltipWithItemIcon( - GuiGraphics thiz, + GuiGraphicsExtractor graphics, Font font, ItemStack itemStack, List lines, @@ -98,43 +121,41 @@ public static void renderTooltipWithItemIcon( for (ClientTooltipComponent component : components) { width = Math.max(component.getWidth(font), width); - height += component.getHeight(); + height += component.getHeight(font); } - Vector2ic vector2ic = tooltipPositioner.positionTooltip(thiz.guiWidth(), thiz.guiHeight(), x, y, width, height); + Vector2ic vector2ic = tooltipPositioner.positionTooltip(graphics.guiWidth(), graphics.guiHeight(), x, y, width, height); int vx = vector2ic.x(); int vy = vector2ic.y(); - thiz.pose().pushPose(); + graphics.pose().pushMatrix(); int finalVy = vy; int finalWidth = width; int finalHeight = height + 16; - thiz.drawManaged(() -> renderTooltipBackground( - thiz, vx, finalVy, finalWidth, finalHeight, backgroundColor, borderTopColor, borderBottomColor)); - thiz.pose().translate(0.0F, 0.0F, 400.0F); + renderTooltipBackground(graphics, vx, finalVy, finalWidth, finalHeight, backgroundColor, borderTopColor, borderBottomColor); - thiz.renderFakeItem(itemStack, vx, vy); + graphics.item(itemStack, vx, vy); vy += 16; ClientTooltipComponent component; for (int i = 0, q = vy; i < components.size(); ++i) { component = components.get(i); - component.renderText(font, vx, q, thiz.pose().last().pose(), thiz.bufferSource()); - q += component.getHeight() + (i == 0 ? 2 : 0); + component.extractText(graphics, font, vx, q); + q += component.getHeight(font) + (i == 0 ? 2 : 0); } for (int i = 0, q = vy; i < components.size(); ++i) { component = components.get(i); - component.renderImage(font, vx, q, thiz); - q += component.getHeight() + (i == 0 ? 2 : 0); + component.extractImage(font, vx, q, finalWidth, finalHeight, graphics); + q += component.getHeight(font) + (i == 0 ? 2 : 0); } - thiz.pose().popPose(); + graphics.pose().popMatrix(); } private static void renderTooltipBackground( - GuiGraphics guiGraphics, + GuiGraphicsExtractor graphics, int x, int y, int width, @@ -147,45 +168,42 @@ private static void renderTooltipBackground( int j = y - 3; int k = width + 3 + 3; int l = height + 3 + 3; - renderHorizontalLine(guiGraphics, i, j - 1, k, 400, backgroundColor); - renderHorizontalLine(guiGraphics, i, j + l, k, 400, backgroundColor); - renderRectangle(guiGraphics, i, j, k, l, 400, backgroundColor); - renderVerticalLine(guiGraphics, i - 1, j, l, 400, backgroundColor); - renderVerticalLine(guiGraphics, i + k, j, l, 400, backgroundColor); - renderFrameGradient(guiGraphics, i, j + 1, k, l, 400, borderTopColor, borderBottomColor); + renderHorizontalLine(graphics, i, j - 1, k, backgroundColor); + renderHorizontalLine(graphics, i, j + l, k, backgroundColor); + renderRectangle(graphics, i, j, k, l, backgroundColor); + renderVerticalLine(graphics, i - 1, j, l, backgroundColor); + renderVerticalLine(graphics, i + k, j, l, backgroundColor); + renderFrameGradient(graphics, i, j + 1, k, l, borderTopColor, borderBottomColor); } private static void renderFrameGradient( - GuiGraphics guiGraphics, + GuiGraphicsExtractor graphics, int x, int y, int width, int height, - int z, int topColor, int bottomColor ) { - renderVerticalLineGradient(guiGraphics, x, y, height - 2, z, topColor, bottomColor); - renderVerticalLineGradient(guiGraphics, x + width - 1, y, height - 2, z, topColor, bottomColor); - renderHorizontalLine(guiGraphics, x, y - 1, width, z, topColor); - renderHorizontalLine(guiGraphics, x, y - 1 + height - 1, width, z, bottomColor); + renderVerticalLineGradient(graphics, x, y, height - 2, topColor, bottomColor); + renderVerticalLineGradient(graphics, x + width - 1, y, height - 2, topColor, bottomColor); + renderHorizontalLine(graphics, x, y - 1, width, topColor); + renderHorizontalLine(graphics, x, y - 1 + height - 1, width, bottomColor); } - private static void renderVerticalLine(GuiGraphics guiGraphics, int x, int y, int length, int z, int color) { - guiGraphics.fill(x, y, x + 1, y + length, z, color); + private static void renderVerticalLine(GuiGraphicsExtractor graphics, int x, int y, int length, int color) { + graphics.fill(x, y, x + 1, y + length, color); } - private static void renderVerticalLineGradient( - GuiGraphics guiGraphics, int x, int y, int length, int z, int topColor, int bottomColor) { - guiGraphics.fillGradient(x, y, x + 1, y + length, z, topColor, bottomColor); + private static void renderVerticalLineGradient(GuiGraphicsExtractor graphics, int x, int y, int length, int topColor, int bottomColor) { + graphics.fillGradient(x, y, x + 1, y + length, topColor, bottomColor); } - private static void renderHorizontalLine(GuiGraphics guiGraphics, int x, int y, int length, int z, int color) { - guiGraphics.fill(x, y, x + length, y + 1, z, color); + private static void renderHorizontalLine(GuiGraphicsExtractor graphics, int x, int y, int length, int color) { + graphics.fill(x, y, x + length, y + 1, color); } - private static void renderRectangle( - GuiGraphics guiGraphics, int x, int y, int width, int height, int z, int color) { - guiGraphics.fill(x, y, x + width, y + height, z, color); + private static void renderRectangle(GuiGraphicsExtractor graphics, int x, int y, int width, int height, int color) { + graphics.fill(x, y, x + width, y + height, color); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/AffectRangeProviderImpl.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/AffectRangeProviderImpl.java index df85c90092..69c3c8c74d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/AffectRangeProviderImpl.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/AffectRangeProviderImpl.java @@ -19,7 +19,7 @@ public VoxelShape affectRange(BlockEntity entity) { if (entity instanceof IHasAffectRange har && har.shape() instanceof AABB shape) { return Shapes.create(shape); } - return null; + return Shapes.empty(); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/ChargerTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/ChargerTooltipProvider.java index 756a2abcc2..6ddfab1832 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/ChargerTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/ChargerTooltipProvider.java @@ -32,7 +32,7 @@ public List tooltip(BlockEntity value) { boolean overloaded = false; BlockPos pos = charger.getBlockPos(); if (charger.getBlockState().hasProperty(IPowerComponent.OVERLOAD)) { - overloaded = charger.getBlockState().getValues().getOrDefault(IPowerComponent.OVERLOAD, true).equals(Boolean.TRUE); + overloaded = charger.getBlockState().getValueOrElse(IPowerComponent.OVERLOAD, true).equals(Boolean.TRUE); } Optional powerGrids = SimplePowerGrid.findPowerGrid(pos); if (powerGrids.isEmpty()) return List.of(); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/DeflectionRingTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/DeflectionRingTooltipProvider.java index 1a43d37ae7..8c3b66898d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/DeflectionRingTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/DeflectionRingTooltipProvider.java @@ -1,7 +1,7 @@ package dev.dubhe.anvilcraft.api.tooltip.impl; -import dev.dubhe.anvilcraft.block.DeflectionRingBlock; import dev.dubhe.anvilcraft.block.entity.DeflectionRingBlockEntity; +import dev.dubhe.anvilcraft.block.power.ring.DeflectionRingBlock; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatCollectorTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatCollectorTooltipProvider.java index 3a345dcab2..24ecd1ebe1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatCollectorTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatCollectorTooltipProvider.java @@ -37,8 +37,8 @@ public List tooltip(BlockEntity e) { if (player != null && player.isShiftKeyDown()) { original = true; } - if (CompatUtil.HAS_JADE.get() && AnvilCraftClient.CONFIG.doNotShowTooltipWhenJadePresent) return null; - if (!(e instanceof HeatCollectorBlockEntity heatCollector)) return null; + if (CompatUtil.HAS_JADE.get() && AnvilCraftClient.CONFIG.doNotShowTooltipWhenJadePresent) return List.of(); + if (!(e instanceof HeatCollectorBlockEntity heatCollector)) return List.of(); if (!heatCollector.isWorking()) { return List.of( Component.translatable("tooltip.anvilcraft.heat_collector.not_work").withStyle(ChatFormatting.RED), @@ -48,14 +48,14 @@ public List tooltip(BlockEntity e) { boolean overloaded = false; BlockPos pos; if (e.getBlockState().hasProperty(IPowerComponent.OVERLOAD)) { - overloaded = e.getBlockState().getValues().getOrDefault(IPowerComponent.OVERLOAD, true).equals(Boolean.TRUE); + overloaded = e.getBlockState().getValueOrElse(IPowerComponent.OVERLOAD, true).equals(Boolean.TRUE); } pos = e.getBlockPos(); Optional powerGrids = SimplePowerGrid.findPowerGrid(pos); if (powerGrids.isEmpty()) return List.of(); SimplePowerGrid grid = powerGrids.get(); final Optional optional = grid.getInfoForPos(pos); - if (optional.isEmpty()) return null; + if (optional.isEmpty()) return List.of(); PowerComponentInfo componentInfo = optional.get(); overloaded |= grid.getConsume() > grid.getGenerate(); final List lines = new ArrayList<>(); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatableBlockTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatableBlockTooltipProvider.java index dcc234a721..3682b62d30 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatableBlockTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeatableBlockTooltipProvider.java @@ -22,7 +22,7 @@ public boolean accepts(BlockEntity entity) { @Override public List tooltip(BlockEntity entity) { - if (CompatUtil.HAS_JADE.get() && AnvilCraftClient.CONFIG.doNotShowTooltipWhenJadePresent) return null; + if (CompatUtil.HAS_JADE.get() && AnvilCraftClient.CONFIG.doNotShowTooltipWhenJadePresent) return List.of(); List components = new ArrayList<>(); HeatRecorder.getTier(entity.getLevel(), entity.getBlockPos(), entity.getBlockState()) .ifPresent(tier -> components.add(ITooltipProvider.withIndentAndMerge(Component.translatable( diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltip.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltip.java index 47ce3b9445..dc4e6b798f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltip.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltip.java @@ -4,9 +4,9 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import dev.dubhe.anvilcraft.api.tooltip.TooltipRenderHelper; import dev.dubhe.anvilcraft.api.tooltip.providers.IHandHeldItemTooltipProvider; -import dev.dubhe.anvilcraft.block.item.HeliostatsItem; import dev.dubhe.anvilcraft.init.block.ModBlocks; -import net.minecraft.client.gui.GuiGraphics; +import dev.dubhe.anvilcraft.item.block.HeliostatsItem; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.core.BlockPos; import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.AABB; @@ -37,7 +37,7 @@ public void render( } @Override - public void renderTooltip(GuiGraphics guiGraphics, int screenWidth, int screenHeight) { + public void renderTooltip(GuiGraphicsExtractor graphics, int screenWidth, int screenHeight) { } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltipProvider.java index 12b1ea4efc..59a10ff140 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/HeliostatsTooltipProvider.java @@ -20,7 +20,7 @@ public boolean accepts(BlockEntity entity) { @Override public List tooltip(BlockEntity e) { - if (!(e instanceof HeliostatsBlockEntity heliostatsBlockEntity)) return null; + if (!(e instanceof HeliostatsBlockEntity heliostatsBlockEntity)) return List.of(); final List lines = new ArrayList<>(); lines.add(Component.translatable("tooltip.anvilcraft.heliostats.not_work")); lines.add(Component.translatable(heliostatsBlockEntity.getWorkResult().getTranslateKey())); diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/InjectedBlockEntityTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/InjectedBlockEntityTooltipProvider.java index 56ca5f3f30..36756a6dc1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/InjectedBlockEntityTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/InjectedBlockEntityTooltipProvider.java @@ -28,13 +28,13 @@ protected Optional cast(BlockEntity value) { @Override public boolean accepts(BlockEntity value) { - return cast(value).isPresent(); + return this.cast(value).isPresent(); } @Override public List tooltip(BlockEntity value) { if (CompatUtil.HAS_JADE.get() && AnvilCraftClient.CONFIG.doNotShowTooltipWhenJadePresent) return List.of(); - return cast(value).map(ITooltipProviderExtension::anvilcraft$getTooltip).orElse(List.of()); + return this.cast(value).map(ITooltipProviderExtension::anvilcraft$getTooltip).orElse(List.of()); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PowerComponentTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PowerComponentTooltipProvider.java index 1e0eeba7f3..b253f7cdce 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PowerComponentTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PowerComponentTooltipProvider.java @@ -5,9 +5,9 @@ import dev.dubhe.anvilcraft.api.power.PowerComponentType; import dev.dubhe.anvilcraft.api.power.SimplePowerGrid; import dev.dubhe.anvilcraft.api.tooltip.providers.ITooltipProvider; -import dev.dubhe.anvilcraft.block.RemoteTransmissionPoleBlock; -import dev.dubhe.anvilcraft.block.TransmissionPoleBlock; import dev.dubhe.anvilcraft.block.multipart.AbstractMultiPartBlock; +import dev.dubhe.anvilcraft.block.power.transmitting.RemoteTransmissionPoleBlock; +import dev.dubhe.anvilcraft.block.power.transmitting.TransmissionPoleBlock; import dev.dubhe.anvilcraft.client.AnvilCraftClient; import dev.dubhe.anvilcraft.util.CompatUtil; import dev.dubhe.anvilcraft.util.UnitUtil; @@ -53,7 +53,7 @@ public List tooltip(BlockEntity e) { } } else if (e instanceof IPowerComponent) { if (e.getBlockState().hasProperty(IPowerComponent.OVERLOAD)) { - overloaded = e.getBlockState().getValues().getOrDefault(IPowerComponent.OVERLOAD, true).equals(Boolean.TRUE); + overloaded = e.getBlockState().getValueOrElse(IPowerComponent.OVERLOAD, true).equals(Boolean.TRUE); } pos = e.getBlockPos(); } else { diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PropelPistonTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PropelPistonTooltipProvider.java index 96fc158a96..36156f0f89 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PropelPistonTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/PropelPistonTooltipProvider.java @@ -1,8 +1,8 @@ package dev.dubhe.anvilcraft.api.tooltip.impl; import dev.dubhe.anvilcraft.api.tooltip.providers.ITooltipProvider; -import dev.dubhe.anvilcraft.block.PropelPiston; import dev.dubhe.anvilcraft.block.entity.PropelPistonBlockEntity; +import dev.dubhe.anvilcraft.block.laser.PropelPistonBlock; import dev.dubhe.anvilcraft.util.UnitUtil; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; @@ -28,7 +28,7 @@ public List tooltip(BlockEntity blockEntity) { BlockPos pos = blockEntity.getBlockPos(); if (level != null) { BlockState state = level.getBlockState(pos); - if (state.getValue(PropelPiston.MOVING)) { + if (state.getValue(PropelPistonBlock.MOVING)) { return List.of(); } } @@ -40,7 +40,7 @@ public List tooltip(BlockEntity blockEntity) { List tooltips = new ArrayList<>(); if (blockEntity instanceof PropelPistonBlockEntity propelPistonBlockEntity) { int storedEnergy = propelPistonBlockEntity.getStoredEnergy(); - String count = String.format("%.0f", Math.ceil(storedEnergy / 5f)); + String count = String.format("%.0f", Math.ceil(storedEnergy / 5F)); tooltips.add(Component.translatable("tooltip.anvilcraft.propel_piston.state").withStyle(ChatFormatting.BLUE)); tooltips.add(Component.translatable("tooltip.anvilcraft.propel_piston.remaining_energy", UnitUtil.energyUnit(storedEnergy, original)) diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/RubyPrismTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/RubyPrismTooltipProvider.java index b4d449a86b..81a06907ad 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/RubyPrismTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/RubyPrismTooltipProvider.java @@ -21,12 +21,12 @@ public boolean accepts(BlockEntity entity) { @Override public List tooltip(BlockEntity e) { if (CompatUtil.HAS_JADE.get() && AnvilCraftClient.CONFIG.doNotShowTooltipWhenJadePresent) { - return null; + return List.of(); } if (e instanceof RubyPrismBlockEntity rubyPrismBlockEntity) { return List.of(Component.translatable("tooltip.anvilcraft.jade.ruby_prism.power", rubyPrismBlockEntity.getLaserLevel())); } - return null; + return List.of(); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/package-info.java index 63439b5404..a755ade20d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/impl/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.tooltip.impl; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/package-info.java index 5fb05c664c..fcff87897a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.tooltip; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHandHeldItemTooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHandHeldItemTooltipProvider.java index c223aa4e5f..6149f9fa23 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHandHeldItemTooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHandHeldItemTooltipProvider.java @@ -2,7 +2,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.world.item.ItemStack; /** @@ -20,7 +20,7 @@ void render( double camZ ); - void renderTooltip(GuiGraphics guiGraphics, int screenWidth, int screenHeight); + void renderTooltip(GuiGraphicsExtractor graphics, int screenWidth, int screenHeight); int priority(); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHasAffectRange.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHasAffectRange.java index d71a2512d8..27d14f6e1d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHasAffectRange.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/IHasAffectRange.java @@ -1,8 +1,7 @@ package dev.dubhe.anvilcraft.api.tooltip.providers; import net.minecraft.world.phys.AABB; - -import javax.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * 拥有作用范围的方块实体 diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/ITooltipProvider.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/ITooltipProvider.java index d8417b2097..c18e3fd097 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/ITooltipProvider.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/ITooltipProvider.java @@ -1,6 +1,7 @@ package dev.dubhe.anvilcraft.api.tooltip.providers; import com.google.errorprone.annotations.DoNotCall; +import com.mojang.logging.annotations.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -27,6 +28,7 @@ public interface ITooltipProvider { int priority(); + @MethodsReturnNonnullByDefault abstract class BlockTooltipProvider implements ITooltipProvider> { public BlockTooltipProvider() { } @@ -35,13 +37,13 @@ public BlockTooltipProvider() { public abstract boolean accepts(Level level, BlockPos pos, BlockState value); public boolean accepts(Triple value) { - return accepts(value.getLeft(), value.getMiddle(), value.getRight()); + return this.accepts(value.getLeft(), value.getMiddle(), value.getRight()); } @DoNotCall @Override public List tooltip(Triple value) { - return tooltip(value.getLeft(), value.getMiddle(), value.getRight()); + return this.tooltip(value.getLeft(), value.getMiddle(), value.getRight()); } public abstract List tooltip(Level level, BlockPos pos, BlockState value); @@ -49,7 +51,7 @@ public List tooltip(Triple value) { @DoNotCall @Override public ItemStack icon(Triple value) { - return icon(value.getLeft(), value.getMiddle(), value.getRight()); + return this.icon(value.getLeft(), value.getMiddle(), value.getRight()); } public ItemStack icon(Level level, BlockPos pos, BlockState value) { @@ -59,6 +61,7 @@ public ItemStack icon(Level level, BlockPos pos, BlockState value) { public abstract int priority(); } + @MethodsReturnNonnullByDefault abstract class BlockEntityTooltipProvider implements ITooltipProvider { public BlockEntityTooltipProvider() { } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/package-info.java index 0c9e03aac5..cadb718032 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/tooltip/providers/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.tooltip.providers; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/TotemManager.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/TotemManager.java deleted file mode 100644 index 8a39dca6d9..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/TotemManager.java +++ /dev/null @@ -1,35 +0,0 @@ -package dev.dubhe.anvilcraft.api.totem; - -import dev.dubhe.anvilcraft.api.totem.handler.AmuletBoxHandler; -import dev.dubhe.anvilcraft.api.totem.handler.TotemHandler; -import dev.dubhe.anvilcraft.api.totem.handler.TotemOfRageHandler; -import dev.dubhe.anvilcraft.api.totem.handler.TotemOfRecoveryHandler; -import dev.dubhe.anvilcraft.api.totem.handler.TotemOfUndyingHandler; -import dev.dubhe.anvilcraft.init.item.ModItems; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import lombok.Getter; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Items; - -import java.util.Map; - -/** - * 用于管理图腾 - */ -public class TotemManager { - public static final TotemManager INSTANCE = new TotemManager(); - - @Getter - private final Map totemMap = new Object2ObjectOpenHashMap<>(); - - private TotemManager() { - registerTotem(ModItems.AMULET_BOX.asItem(), new AmuletBoxHandler()); - registerTotem(Items.TOTEM_OF_UNDYING, new TotemOfUndyingHandler()); - registerTotem(ModItems.TOTEM_OF_RECOVERY.get(), new TotemOfRecoveryHandler()); - registerTotem(ModItems.TOTEM_OF_RAGE.get(), new TotemOfRageHandler()); - } - - public void registerTotem(Item item, TotemHandler handler) { - totemMap.put(item, handler); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/AmuletBoxHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/AmuletBoxHandler.java deleted file mode 100644 index 350171d262..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/AmuletBoxHandler.java +++ /dev/null @@ -1,42 +0,0 @@ -package dev.dubhe.anvilcraft.api.totem.handler; - -import dev.dubhe.anvilcraft.api.totem.TotemManager; -import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.item.property.component.BoxContents; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; - -import java.util.List; -import java.util.Map; - -public class AmuletBoxHandler implements TotemHandler { - @Override - public boolean canExecute(DamageSource damageSource, LivingEntity entity, ItemStack totemItem) { - return !totemItem.getOrDefault(ModComponents.BOX_CONTENTS, BoxContents.EMPTY).totems().isEmpty(); - } - - @Override - public boolean execute(DamageSource damageSource, LivingEntity entity, ItemStack totemItem) { - Map totemMap = TotemManager.INSTANCE.getTotemMap(); - List totems = totemItem.getOrDefault(ModComponents.BOX_CONTENTS, BoxContents.EMPTY).totems(); - if (!totems.isEmpty()) { - for (Item item : totemMap.keySet()) { - if (totems.getFirst().is(item)) { - return totemMap.get(item).execute(damageSource, entity, totems.getFirst()); - } - } - } - return false; - } - - @SuppressWarnings("DataFlowIssue") - @Override - public void shrink(ItemStack totemItem) { - BoxContents boxContents = totemItem.get(ModComponents.BOX_CONTENTS); - BoxContents.Mutable mutable = boxContents.mutable(); - mutable.popTotem(); - totemItem.set(ModComponents.BOX_CONTENTS, mutable.immutable()); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemHandler.java deleted file mode 100644 index 027b81d07c..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemHandler.java +++ /dev/null @@ -1,39 +0,0 @@ -package dev.dubhe.anvilcraft.api.totem.handler; - -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -/** - * 图腾触发时的事件 - */ -public interface TotemHandler { - /** - * 判断图腾是否可触发 - * - * @param damageSource 伤害来源 - * @param entity 持有图腾的实体 - * @param totemItem 图腾物品 - * @return 是否执行成功 - */ - default boolean canExecute(DamageSource damageSource, LivingEntity entity, ItemStack totemItem) { - return true; - } - - /** - * 图腾触发时执行 - * - * @param damageSource 伤害来源 - * @param entity 持有图腾的实体 - * @param totemItem 图腾物品 - * @return 是否执行成功 - */ - boolean execute(DamageSource damageSource, LivingEntity entity, ItemStack totemItem); - - /** - * 减少图腾物品数量 - * - * @param totemItem 图腾物品 - */ - void shrink(ItemStack totemItem); -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRageHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRageHandler.java deleted file mode 100644 index 9367f5c63b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRageHandler.java +++ /dev/null @@ -1,42 +0,0 @@ -package dev.dubhe.anvilcraft.api.totem.handler; - -import dev.dubhe.anvilcraft.init.ModMobEffects; -import dev.dubhe.anvilcraft.init.item.ModItems; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.tags.DamageTypeTags; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.gameevent.GameEvent; - -public class TotemOfRageHandler implements TotemHandler { - @Override - public boolean execute(DamageSource damageSource, LivingEntity entity, ItemStack totemItem) { - if (!damageSource.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) { - if (entity instanceof ServerPlayer player) { - player.getFoodData().setFoodLevel(20); - CriteriaTriggers.USED_TOTEM.trigger(player, ModItems.TOTEM_OF_RAGE.asStack()); - entity.gameEvent(GameEvent.ITEM_INTERACT_FINISH); - } - entity.setHealth(entity.getMaxHealth()); - entity.removeAllEffects(); - entity.addEffect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 1200, 4)); - entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 1200, 2)); - entity.addEffect(new MobEffectInstance(MobEffects.DIG_SPEED, 1200, 2)); - entity.addEffect(new MobEffectInstance(ModMobEffects.INVULNERABLE, 1200, 0)); - entity.addEffect(new MobEffectInstance(ModMobEffects.RAGE, 1200, 0)); - entity.level().broadcastEntityEvent(entity, (byte) 37); - - return true; - } - return false; - } - - @Override - public void shrink(ItemStack totemItem) { - totemItem.shrink(1); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRecoveryHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRecoveryHandler.java deleted file mode 100644 index 5bfc8c5fa9..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfRecoveryHandler.java +++ /dev/null @@ -1,68 +0,0 @@ -package dev.dubhe.anvilcraft.api.totem.handler; - -import dev.dubhe.anvilcraft.init.item.ModItems; -import dev.dubhe.anvilcraft.item.RecoveryPearl; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.core.BlockPos; -import net.minecraft.core.GlobalPos; -import net.minecraft.resources.ResourceKey; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.stats.Stats; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.damagesource.DamageTypes; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.gameevent.GameEvent; -import net.neoforged.neoforge.common.EffectCures; - -import java.util.Optional; - -public class TotemOfRecoveryHandler implements TotemHandler { - @Override - public boolean execute(DamageSource damageSource, LivingEntity entity, ItemStack totemItem) { - if (!damageSource.is(DamageTypes.GENERIC_KILL)) { - if (entity instanceof ServerPlayer player) { - player.fallDistance = 0; - player.awardStat(Stats.ITEM_USED.get(ModItems.TOTEM_OF_RECOVERY.get()), 1); - CriteriaTriggers.USED_TOTEM.trigger(player, ModItems.TOTEM_OF_RECOVERY.asStack()); - entity.gameEvent(GameEvent.ITEM_INTERACT_FINISH); - player.getInventory().add(ModItems.RECOVERY_PEARL.asStack()); - ResourceKey deathDimension = player.level().dimension(); - BlockPos deathPos = player.getOnPos(); - if (deathDimension == Level.OVERWORLD) { - if (deathPos.getY() < -64) { - deathPos = deathPos.atY(-63); - } - } else { - if (deathPos.getY() < 0) { - deathPos = deathPos.atY(1); - } - } - deathPos = deathPos.atY(deathPos.getY() + 1); - player.setLastDeathLocation(Optional.of(GlobalPos.of(deathDimension, deathPos))); - ResourceKey respawnDimension = player.getRespawnDimension(); - BlockPos respawnPos = player.getRespawnPosition() == null - ? player.level().getSharedSpawnPos() - : player.getRespawnPosition(); - RecoveryPearl.crossDimensionTeleportTo(respawnDimension, player, respawnPos); - } - entity.setHealth(1.0f); - entity.removeEffectsCuredBy(EffectCures.PROTECTED_BY_TOTEM); - entity.addEffect(new MobEffectInstance(MobEffects.REGENERATION, 900, 1)); - entity.addEffect(new MobEffectInstance(MobEffects.ABSORPTION, 100, 1)); - entity.addEffect(new MobEffectInstance(MobEffects.FIRE_RESISTANCE, 800, 0)); - entity.level().broadcastEntityEvent(entity, (byte) 36); - - return true; - } - return false; - } - - @Override - public void shrink(ItemStack totemItem) { - totemItem.shrink(1); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfUndyingHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfUndyingHandler.java deleted file mode 100644 index e98a9b6386..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/TotemOfUndyingHandler.java +++ /dev/null @@ -1,40 +0,0 @@ -package dev.dubhe.anvilcraft.api.totem.handler; - -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.stats.Stats; -import net.minecraft.tags.DamageTypeTags; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.gameevent.GameEvent; -import net.neoforged.neoforge.common.EffectCures; - -public class TotemOfUndyingHandler implements TotemHandler { - @Override - public boolean execute(DamageSource damageSource, LivingEntity entity, ItemStack totemItem) { - if (!damageSource.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) { - if (entity instanceof ServerPlayer player) { - player.awardStat(Stats.ITEM_USED.get(Items.TOTEM_OF_UNDYING), 1); - CriteriaTriggers.USED_TOTEM.trigger(player, Items.TOTEM_OF_UNDYING.getDefaultInstance()); - entity.gameEvent(GameEvent.ITEM_INTERACT_FINISH); - } - entity.setHealth(1.0f); - entity.removeEffectsCuredBy(EffectCures.PROTECTED_BY_TOTEM); - entity.addEffect(new MobEffectInstance(MobEffects.REGENERATION, 900, 1)); - entity.addEffect(new MobEffectInstance(MobEffects.ABSORPTION, 100, 1)); - entity.addEffect(new MobEffectInstance(MobEffects.FIRE_RESISTANCE, 800, 0)); - entity.level().broadcastEntityEvent(entity, (byte) 35); - return true; - } - return false; - } - - @Override - public void shrink(ItemStack totemItem) { - totemItem.shrink(1); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/package-info.java deleted file mode 100644 index 450e1da82a..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/handler/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.api.totem.handler; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/totem/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/totem/package-info.java deleted file mode 100644 index 7c4f9b0ed5..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/api/totem/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.api.totem; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/uuid/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/uuid/package-info.java index c6b60d36be..dbb3b8e964 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/uuid/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/uuid/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.uuid; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/world/load/LoadChuckData.java b/src/main/java/dev/dubhe/anvilcraft/api/world/load/LoadChuckData.java index c67fdb17a7..579e8c8f0f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/world/load/LoadChuckData.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/world/load/LoadChuckData.java @@ -48,9 +48,9 @@ public static LoadChuckData createLoadChuckData( ServerLevel serverLevel ) { List chunkPosList = new ArrayList<>(); - ChunkPos centerChunkPos = new ChunkPos(centerPos); - for (int x = centerChunkPos.x - level; x <= centerChunkPos.x + level; x++) { - for (int z = centerChunkPos.z - level; z <= centerChunkPos.z + level; z++) { + ChunkPos centerChunkPos = ChunkPos.containing(centerPos); + for (int x = centerChunkPos.x() - level; x <= centerChunkPos.x() + level; x++) { + for (int z = centerChunkPos.z() - level; z <= centerChunkPos.z() + level; z++) { chunkPosList.add(new ChunkPos(x, z)); } } @@ -65,8 +65,8 @@ public void apply(ServerLevel level) { if (this.isNeedRandomTick) { RandomChuckTickLoadManager.register(this.centerPos, this); } - for (ChunkPos chunkPos : chunkPosList) { - level.setChunkForced(chunkPos.x, chunkPos.z, true); + for (ChunkPos chunkPos : this.chunkPosList) { + level.setChunkForced(chunkPos.x(), chunkPos.z(), true); } }); } @@ -83,8 +83,8 @@ public void discard(ServerLevel level) { if (this.isNeedRandomTick) { RandomChuckTickLoadManager.unregister(this.centerPos); } - for (ChunkPos chunkPos : chunkPosList) { - level.setChunkForced(chunkPos.x, chunkPos.z, false); + for (ChunkPos chunkPos : this.chunkPosList) { + level.setChunkForced(chunkPos.x(), chunkPos.z(), false); } }); } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/world/load/RandomChuckTickLoadManager.java b/src/main/java/dev/dubhe/anvilcraft/api/world/load/RandomChuckTickLoadManager.java index b17aad4b0f..e61394096d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/world/load/RandomChuckTickLoadManager.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/world/load/RandomChuckTickLoadManager.java @@ -4,7 +4,7 @@ import net.minecraft.server.level.ChunkMap; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.GameRules; +import net.minecraft.world.level.gamerules.GameRules; import java.util.HashMap; import java.util.Map; @@ -30,10 +30,10 @@ public static void tick() { for (ChunkPos chunkPos : loadChuckData.getChunkPosList()) { ServerLevel serverLevel = loadChuckData.getServerLevel(); ChunkMap chunkMap = serverLevel.getChunkSource().chunkMap; - if (chunkMap.updatingChunkMap.containsKey(chunkPos.toLong())) { + if (chunkMap.updatingChunkMap.containsKey(chunkPos.pack())) { serverLevel.tickChunk( - serverLevel.getChunk(chunkPos.x, chunkPos.z), - serverLevel.getServer().getGameRules().getInt(GameRules.RULE_RANDOMTICKING) + serverLevel.getChunk(chunkPos.x(), chunkPos.z()), + serverLevel.getServer().getGameRules().get(GameRules.RANDOM_TICK_SPEED) ); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/api/world/load/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/world/load/package-info.java index adb019bdf8..01379b2497 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/world/load/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/world/load/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.world.load; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/api/world/package-info.java b/src/main/java/dev/dubhe/anvilcraft/api/world/package-info.java index fb17cff00e..79e224c996 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/world/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/world/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.api.world; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/AbstractCakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/AbstractCakeBlock.java deleted file mode 100644 index 62bb079f8b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/AbstractCakeBlock.java +++ /dev/null @@ -1,94 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.anvilcraft.lib.v2.util.Util; -import dev.dubhe.anvilcraft.util.PlayerUtil; -import net.minecraft.core.BlockPos; -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.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.gameevent.GameEvent; -import net.minecraft.world.level.material.PushReaction; -import net.minecraft.world.phys.BlockHitResult; -import net.neoforged.neoforge.common.ItemAbilities; - -import java.util.function.Function; - -public class AbstractCakeBlock extends Block { - public AbstractCakeBlock(Properties properties) { - super(properties.pushReaction(PushReaction.NORMAL)); - } - - @Override - @SuppressWarnings("RedundantMethodOverride") - protected InteractionResult useWithoutItem( - BlockState state, - Level level, - BlockPos pos, - Player player, - BlockHitResult hitResult - ) { - return InteractionResult.PASS; - } - - @Override - protected ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - ItemStack itemStack = player.getItemInHand(hand); - if (!(itemStack.getItem().canPerformAction(itemStack, ItemAbilities.SHOVEL_DIG))) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - if (level.isClientSide) { - if (eat(level, pos, player, getFoodLevel(), getSaturationLevel(), Util.interactionResultConverter()).consumesAction()) { - return ItemInteractionResult.SUCCESS; - } - - if (itemStack.isEmpty()) { - return ItemInteractionResult.CONSUME; - } - } else { - ItemInteractionResult itemInteractionResult = - eat(level, pos, player, getFoodLevel(), getSaturationLevel(), Util.interactionResultConverter()); - if (itemInteractionResult == ItemInteractionResult.SUCCESS) itemStack.hurtAndBreak(1, player, PlayerUtil.handToSlot(hand)); - return itemInteractionResult; - } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - - private static T eat( - LevelAccessor level, - BlockPos pos, - Player player, - int foodLevel, - float saturationLevel, - Function converter) { - if (!player.canEat(false)) { - return converter.apply(InteractionResult.PASS); - } else { - player.getFoodData().eat(foodLevel, saturationLevel); - level.removeBlock(pos, false); - level.gameEvent(player, GameEvent.BLOCK_DESTROY, pos); - return converter.apply(InteractionResult.SUCCESS); - } - } - - public int getFoodLevel() { - return 0; - } - - public float getSaturationLevel() { - return 0; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BerryCakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/BerryCakeBlock.java deleted file mode 100644 index a5738832db..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/BerryCakeBlock.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -public class BerryCakeBlock extends AbstractCakeBlock { - - public BerryCakeBlock(Properties properties) { - super(properties); - } - - @Override - public int getFoodLevel() { - return 14; - } - - @Override - public float getSaturationLevel() { - return 0.6F; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BerryCreamBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/BerryCreamBlock.java deleted file mode 100644 index e28a07f088..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/BerryCreamBlock.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -public class BerryCreamBlock extends AbstractCakeBlock { - - public BerryCreamBlock(Properties properties) { - super(properties); - } - - @Override - public int getFoodLevel() { - return 8; - } - - @Override - public float getSaturationLevel() { - return 0.4F; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BlockComparatorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/BlockComparatorBlock.java deleted file mode 100644 index 1c983b508c..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/BlockComparatorBlock.java +++ /dev/null @@ -1,179 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -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.block.Block; -import net.minecraft.world.level.block.HorizontalDirectionalBlock; -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.pathfinder.PathComputationType; -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 org.jetbrains.annotations.Nullable; - -public class BlockComparatorBlock extends HorizontalDirectionalBlock implements HammerRotateBehavior, IHammerRemovable { - - public static final MapCodec CODEC = simpleCodec(BlockComparatorBlock::new); - - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; - public static final BooleanProperty PRECISE = BooleanProperty.create("precise"); - public static final BooleanProperty POWERED = BlockStateProperties.POWERED; - - public static final VoxelShape NORTH_MODEL = Shapes.or(Block.box(0, 4, 0, 16, 7, 6), Block.box(4, 0, 3, 12, 8, 16)); - public static final VoxelShape EAST_MODEL = Shapes.or(Block.box(10, 4, 0, 16, 7, 16), Block.box(0, 0, 4, 13, 8, 12)); - public static final VoxelShape SOUTH_MODEL = Shapes.or(Block.box(0, 4, 10, 16, 7, 16), Block.box(4, 0, 0, 12, 8, 13)); - public static final VoxelShape WEST_MODEL = Shapes.or(Block.box(0, 4, 0, 6, 7, 16), Block.box(3, 0, 4, 16, 8, 12)); - - public BlockComparatorBlock(Properties properties) { - super(properties); - this.registerDefaultState( - this.stateDefinition - .any() - .setValue(FACING, Direction.NORTH) - .setValue(PRECISE, false) - .setValue(POWERED, false) - ); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(FACING).add(PRECISE).add(POWERED); - } - - @Override - protected MapCodec codec() { - return CODEC; - } - - @Override - public VoxelShape getShape( - BlockState state, - BlockGetter level, - BlockPos pos, - CollisionContext context - ) { - return switch (state.getValue(HorizontalDirectionalBlock.FACING)) { - case NORTH -> NORTH_MODEL; - case SOUTH -> SOUTH_MODEL; - case EAST -> EAST_MODEL; - case WEST -> WEST_MODEL; - default -> super.getShape(state, level, pos, context); - }; - } - - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - Direction direction = context.getHorizontalDirection(); - return this.defaultBlockState().setValue(FACING, direction.getOpposite()); - } - - @Override - protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean isMoving) { - if (level.isClientSide || (oldState.is(this) && state.getValue(FACING) == oldState.getValue(FACING))) return; - boolean newPowered = checkBlocks(level, pos, state); - level.setBlock(pos, state.setValue(POWERED, newPowered), 3); - this.updateNeighborsInFront(level, pos, state); - } - - @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (level.isClientSide || (state.is(newState.getBlock()) && state.getValue(FACING) == newState.getValue(FACING))) return; - if (state.getValue(POWERED)) { - this.updateNeighborsInFront(level, pos, state); - } - - } - - @Override - protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { - if (!player.getAbilities().mayBuild) { - return InteractionResult.PASS; - } else { - BlockState newState = state.cycle(PRECISE); - level.setBlock(pos, newState.setValue(POWERED, checkBlocks(level, pos, newState)), 2); - this.updateNeighborsInFront(level, pos, state); - return InteractionResult.sidedSuccess(level.isClientSide); - } - } - - private boolean checkBlocks(LevelAccessor level, BlockPos pos, BlockState blockState) { - Direction facing = blockState.getValue(FACING); - BlockState state1 = level.getBlockState(pos.relative(facing.getClockWise())); - BlockState state2 = level.getBlockState(pos.relative(facing.getCounterClockWise())); - return blockState.getValue(PRECISE) ? state1.equals(state2) : state1.getBlock() == state2.getBlock(); - } - - @Override - public BlockState updateShape( - BlockState blockState, - Direction direction, - BlockState blockState2, - LevelAccessor level, - BlockPos pos, - BlockPos pos2 - ) { - Direction facing = blockState.getValue(FACING); - if (direction.getAxis() == Direction.Axis.Y || direction.getAxis() == facing.getAxis()) return blockState; - if (!level.isClientSide() && !level.getBlockTicks().hasScheduledTick(pos, this)) { - level.scheduleTick(pos, this, 2); - } - return blockState; - } - - @Override - protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { - boolean same = checkBlocks(level, pos, state); - if (same != state.getValue(POWERED)) { - level.setBlock(pos, state.setValue(POWERED, same), 2); - this.updateNeighborsInFront(level, pos, state); - } - } - - protected void updateNeighborsInFront(Level level, BlockPos pos, BlockState state) { - Direction direction = state.getValue(FACING); - BlockPos blockpos = pos.relative(direction.getOpposite()); - level.neighborChanged(blockpos, this, pos); - level.updateNeighborsAtExceptFromFacing(blockpos, this, direction); - } - - @Override - public boolean canConnectRedstone(BlockState state, BlockGetter level, BlockPos pos, @Nullable Direction direction) { - return direction == state.getValue(FACING); - } - - @Override - protected boolean isSignalSource(BlockState state) { - return true; - } - - @Override - protected int getDirectSignal(BlockState blockState, BlockGetter blockAccess, BlockPos pos, Direction side) { - return blockState.getSignal(blockAccess, pos, side); - } - - @Override - protected int getSignal(BlockState blockState, BlockGetter blockAccess, BlockPos pos, Direction side) { - return blockState.getValue(POWERED) && blockState.getValue(FACING) == side ? 15 : 0; - } - - @Override - protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) { - return false; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CakeBaseBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/CakeBaseBlock.java deleted file mode 100644 index ab51fd3cb1..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/CakeBaseBlock.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -public class CakeBaseBlock extends AbstractCakeBlock { - - public CakeBaseBlock(Properties properties) { - super(properties); - } - - @Override - public int getFoodLevel() { - return 5; - } - - @Override - public float getSaturationLevel() { - return 0.8F; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/CakeBlock.java deleted file mode 100644 index b0c947392d..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/CakeBlock.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -public class CakeBlock extends AbstractCakeBlock { - - public CakeBlock(Properties properties) { - super(properties); - } - - @Override - public int getFoodLevel() { - return 10; - } - - @Override - public float getSaturationLevel() { - return 0.6F; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CementCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/CementCauldronBlock.java deleted file mode 100644 index ca9208d38b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/CementCauldronBlock.java +++ /dev/null @@ -1,66 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.block.better.BetterAbstractCauldronBlock; -import dev.dubhe.anvilcraft.block.state.Color; -import dev.dubhe.anvilcraft.util.ModInteractionMap; -import lombok.Getter; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.AbstractCauldronBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; - -@Getter -public class CementCauldronBlock extends BetterAbstractCauldronBlock implements IHammerRemovable { - - public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( - propertiesCodec(), Color.CODEC.fieldOf("color").forGetter(CementCauldronBlock::getColor) - ).apply(ins, CementCauldronBlock::new)); - - private final Color color; - - public CementCauldronBlock(Properties properties, Color color) { - super(properties, ModInteractionMap.CEMENT); - this.color = color; - } - - @Override - public ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - CauldronInteraction interaction = this.interactions.map().get(stack.getItem()); - if (interaction == null) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - return interaction.interact(state, level, pos, player, hand, stack); - } - - @Override - protected MapCodec codec() { - return CODEC; - } - - @Override - protected double getContentHeight(BlockState state) { - return 0.9375; - } - - @Override - public boolean isFull(BlockState state) { - return true; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ChargerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/ChargerBlock.java deleted file mode 100644 index 18cd7d6b50..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/ChargerBlock.java +++ /dev/null @@ -1,208 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; -import dev.dubhe.anvilcraft.api.power.IPowerComponent; -import dev.dubhe.anvilcraft.block.entity.ChargerBlockEntity; -import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import dev.dubhe.anvilcraft.util.IStateListener; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.util.RandomSource; -import net.minecraft.world.Containers; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -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.Level; -import net.minecraft.world.level.block.BaseEntityBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.RenderShape; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -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.Property; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.Nullable; - -public class ChargerBlock extends BaseEntityBlock implements IHammerRemovable, IHammerChangeable { - public static final BooleanProperty POWERED = BlockStateProperties.POWERED; - public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; - - public ChargerBlock(Properties properties) { - super(properties); - registerDefaultState(getStateDefinition().any().setValue(POWERED, false).setValue(OVERLOAD, true)); - } - - @Override - protected MapCodec codec() { - return simpleCodec(ChargerBlock::new); - } - - @Nullable - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - return defaultBlockState().setValue(POWERED, false).setValue(OVERLOAD, true); - } - - @Nullable - @Override - public BlockEntityTicker getTicker( - Level level, - BlockState state, - BlockEntityType type - ) { - if (level.isClientSide) { - return null; - } - return createTickerHelper( - type, - ModBlockEntities.CHARGER.get(), - (level1, blockPos, blockState, blockEntity) -> blockEntity.tick(level1, blockPos) - ); - } - - @Override - public void neighborChanged( - BlockState state, - Level level, - BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston - ) { - if (level.isClientSide) { - return; - } - level.setBlock(pos, state.setValue(POWERED, level.hasNeighborSignal(pos)), 2); - } - - @Nullable - @Override - public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return new ChargerBlockEntity(ModBlockEntities.CHARGER.get(), pos, state); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(POWERED).add(OVERLOAD); - } - - @Override - public RenderShape getRenderShape(BlockState state) { - return RenderShape.MODEL; - } - - @Override - public void onRemove( - BlockState state, - Level level, - BlockPos pos, - BlockState newState, - boolean movedByPiston - ) { - if (state.is(newState.getBlock())) return; - if (level.getBlockEntity(pos) instanceof ChargerBlockEntity entity) { - Vec3 vec3 = entity.getBlockPos().getCenter(); - FilteredItemStackHandler depository = entity.getFilteredItemStackHandler(); - for (int slot = 0; slot < depository.getSlots(); slot++) { - Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, depository.getStackInSlot(slot)); - } - level.updateNeighbourForOutputSignal(pos, this); - } - super.onRemove(state, level, pos, newState, movedByPiston); - } - - @Override - public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { - if (state.getValue(POWERED) && !level.hasNeighborSignal(pos)) { - level.setBlock(pos, state.cycle(POWERED), 2); - } - } - - @SuppressWarnings("unchecked") - @Override - public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { - level.setBlock(blockPos, ModBlocks.DISCHARGER.getDefaultState(), 2); - if (level.getBlockEntity(blockPos) instanceof IStateListener listener) { - IStateListener self = (IStateListener) listener; - self.notifyStateChanged(false); - } - return true; - } - - @Override - public @Nullable Property getChangeableProperty(BlockState blockState) { - return null; - } - - @Override - protected boolean hasAnalogOutputSignal(BlockState state) { - return true; - } - - @Override - protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { - BlockEntity blockEntity = level.getBlockEntity(pos); - return blockEntity instanceof ChargerBlockEntity charger ? charger.getAnalogRedstoneSignal() : 0; - } - - @Override - protected ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hit - ) { - if (!level.isClientSide()) { - if (level.getBlockEntity(pos) instanceof ChargerBlockEntity charger) { - // 玩家空手时尝试取出物品 - if (stack.isEmpty()) { - // 优先从输出槽(槽位2)取物品,如果为空则从输入槽(槽位0)取 - for (int slot : new int[]{ - 2, - 0 - }) { - ItemStack itemInSlot = charger.getFilteredItemStackHandler().getStackInSlot(slot); - if (!itemInSlot.isEmpty()) { - ItemStack extracted = charger.getFilteredItemStackHandler().extractItem(slot, itemInSlot.getCount(), false); - player.getInventory().placeItemBackInInventory(extracted); - level.playSound( - null, - pos, - SoundEvents.ITEM_PICKUP, - SoundSource.PLAYERS, - .2f, - 1f + level.getRandom().nextFloat() - ); - return ItemInteractionResult.SUCCESS; - } - } - } else if (charger.containsValidItem(stack)) { - ItemStack result = charger.getFilteredItemStackHandler().insertItem(0, stack, true); - if (result.isEmpty() || result.getCount() < stack.getCount()) { - int countDiff = stack.getCount() - (result.isEmpty() ? 0 : result.getCount()); - ItemStack toInsert = stack.split(countDiff); - charger.getFilteredItemStackHandler().insertItem(0, toInsert, false); - return ItemInteractionResult.SUCCESS; - } - } - } - } - return super.useItemOn(stack, state, level, pos, player, hand, hit); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ChocolateCakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/ChocolateCakeBlock.java deleted file mode 100644 index 9a65ad2909..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/ChocolateCakeBlock.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -public class ChocolateCakeBlock extends AbstractCakeBlock { - - public ChocolateCakeBlock(Properties properties) { - super(properties); - } - - @Override - public int getFoodLevel() { - return 20; - } - - @Override - public float getSaturationLevel() { - return 0.6F; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ChocolateCreamBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/ChocolateCreamBlock.java deleted file mode 100644 index 9cb15768ce..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/ChocolateCreamBlock.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -public class ChocolateCreamBlock extends AbstractCakeBlock { - - public ChocolateCreamBlock(Properties properties) { - super(properties); - } - - @Override - public int getFoodLevel() { - return 12; - } - - @Override - public float getSaturationLevel() { - return 0.4F; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CrabTrapBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/CrabTrapBlock.java deleted file mode 100644 index 1e873c5759..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/CrabTrapBlock.java +++ /dev/null @@ -1,209 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.block.better.BetterBaseEntityBlock; -import dev.dubhe.anvilcraft.block.entity.CrabTrapBlockEntity; -import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.loot.ModLootTables; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceKey; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.Containers; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.item.ItemEntity; -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.Level; -import net.minecraft.world.level.block.BaseEntityBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.HorizontalDirectionalBlock; -import net.minecraft.world.level.block.Mirror; -import net.minecraft.world.level.block.RenderShape; -import net.minecraft.world.level.block.Rotation; -import net.minecraft.world.level.block.SimpleWaterloggedBlock; -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.material.FluidState; -import net.minecraft.world.level.material.Fluids; -import net.minecraft.world.level.storage.loot.LootParams; -import net.minecraft.world.level.storage.loot.LootTable; -import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; -import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.items.IItemHandler; -import net.neoforged.neoforge.items.ItemHandlerHelper; -import org.jetbrains.annotations.Nullable; - -public class CrabTrapBlock extends BetterBaseEntityBlock implements SimpleWaterloggedBlock, IHammerRemovable { - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; - public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; - - public CrabTrapBlock(Properties properties) { - super(properties); - registerDefaultState( - getStateDefinition().any() - .setValue(FACING, Direction.NORTH) - .setValue(WATERLOGGED, false) - ); - } - - @Override - protected MapCodec codec() { - return simpleCodec(CrabTrapBlock::new); - } - - @Override - public BlockState rotate(BlockState state, Rotation rotation) { - return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); - } - - @Override - public BlockState mirror(BlockState state, Mirror mirror) { - return state.rotate(mirror.getRotation(state.getValue(FACING))); - } - - @Nullable - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - return this.defaultBlockState() - .setValue(FACING, context.getHorizontalDirection().getOpposite()) - .setValue( - WATERLOGGED, - context.getLevel() - .getFluidState(context.getClickedPos()) - .getType() - == Fluids.WATER); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(FACING); - builder.add(WATERLOGGED); - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(state); - } - - @Override - public boolean isRandomlyTicking(BlockState state) { - return state.getValue(WATERLOGGED); - } - - @Override - public void randomTick( - BlockState state, - ServerLevel level, - BlockPos pos, - RandomSource random) { - int times = 0; - for (Direction face : Direction.values()) { - if (level.getFluidState(pos.relative(face)).is(Fluids.WATER)) times++; - } - - if (times >= 3) { - // 获取战利品并放入 block entity - tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_COMMON); - tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_RIVER); - tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_OCEAN); - tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_WARM_OCEAN); - tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_SWAMP); - tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_JUNGLE); - } - } - - @Override - public InteractionResult use( - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hit - ) { - if (!level.isClientSide()) { - CrabTrapBlockEntity blockEntity = (CrabTrapBlockEntity) level.getBlockEntity(pos); - if (blockEntity != null) { - IItemHandler itemHandler = blockEntity.getItemHandler(); - for (int i = 0; i < itemHandler.getSlots(); i++) { - ItemStack stack = itemHandler.getStackInSlot(i); - if (stack.isEmpty()) continue; - Vec3 center = pos.relative(Direction.UP).getCenter(); - ItemEntity itemEntity = new ItemEntity(level, center.x(), center.y(), center.z(), stack, 0, 0.2, 0); - itemEntity.setDefaultPickUpDelay(); - level.addFreshEntity(itemEntity); - itemHandler.extractItem(i, stack.getCount(), false); - } - blockEntity.setChanged(); - } - } - return InteractionResult.SUCCESS; - } - - @Nullable - @Override - public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return new CrabTrapBlockEntity(ModBlockEntities.CRAB_TRAP.get(), pos, state); - } - - @Override - public RenderShape getRenderShape(BlockState state) { - return RenderShape.MODEL; - } - - @Override - public void onRemove( - BlockState state, - Level level, - BlockPos pos, - BlockState newState, - boolean movedByPiston - ) { - if (state.is(newState.getBlock())) return; - if (level.getBlockEntity(pos) instanceof CrabTrapBlockEntity entity) { - Vec3 vec3 = entity.getBlockPos().getCenter(); - IItemHandler itemHandler = entity.getItemHandler(); - for (int slot = 0; slot < itemHandler.getSlots(); slot++) { - Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, itemHandler.getStackInSlot(slot)); - } - level.updateNeighbourForOutputSignal(pos, this); - } - super.onRemove(state, level, pos, newState, movedByPiston); - } - - private void tryInsertLoot( - BlockState state, - ServerLevel level, - BlockPos pos, - ResourceKey loot - ) { - if (state.hasBlockEntity()) { - LootParams lootParams = new LootParams.Builder(level) - .withParameter(LootContextParams.ORIGIN, pos.getCenter()) - .create(LootContextParamSets.CHEST); - - LootTable lootTable = level.getServer().reloadableRegistries().getLootTable(loot); - ObjectArrayList items = lootTable.getRandomItems(lootParams); - if (items.isEmpty()) return; - CrabTrapBlockEntity blockEntity = (CrabTrapBlockEntity) level.getBlockEntity(pos); - if (blockEntity != null) { - for (ItemStack item : items) { - ItemHandlerHelper.insertItem(blockEntity.getItemHandler(), item, false); - } - blockEntity.setChanged(); - } - } - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CreamBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/CreamBlock.java deleted file mode 100644 index ca5946c1eb..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/CreamBlock.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -public class CreamBlock extends AbstractCakeBlock { - - public CreamBlock(Properties properties) { - super(properties); - } - - @Override - public int getFoodLevel() { - return 5; - } - - @Override - public float getSaturationLevel() { - return 0.4F; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EndDustBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/EndDustBlock.java deleted file mode 100644 index c55a3b5f89..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/EndDustBlock.java +++ /dev/null @@ -1,58 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.entity.FloatingBlockEntity; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.tags.FluidTags; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.FallingBlock; -import net.minecraft.world.level.block.state.BlockState; - -public class EndDustBlock extends Block { - public EndDustBlock(Properties properties) { - super(properties); - } - - @Override - public void onPlace( - BlockState state, - Level level, - BlockPos pos, - BlockState oldState, - boolean movedByPiston - ) { - level.scheduleTick(pos, this, this.getDelayAfterPlace()); - } - - @Override - public void tick( - BlockState state, - ServerLevel level, - BlockPos pos, - RandomSource random - ) { - if (!level.getFluidState(pos.above()).is(FluidTags.WATER)) return; - if (!FallingBlock.isFree(level.getBlockState(pos.above()))) return; - FloatingBlockEntity._float(level, pos, state); - } - - @Override - public void neighborChanged( - BlockState state, - Level level, - BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston - ) { - if (level.getFluidState(neighborPos).is(FluidTags.WATER)) { - level.scheduleTick(pos, this, this.getDelayAfterPlace()); - } - } - - protected int getDelayAfterPlace() { - return 2; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ExpFluidBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/ExpFluidBlock.java deleted file mode 100644 index 15a87dd1ae..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/ExpFluidBlock.java +++ /dev/null @@ -1,28 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.LiquidBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.FlowingFluid; - -public class ExpFluidBlock extends LiquidBlock { - public static final int XP_POINTS = 50; - - public ExpFluidBlock(FlowingFluid fluid, Properties properties) { - super(fluid, properties); - } - - @Override - public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - if (level.isClientSide) return; - if (!level.getFluidState(pos).isSource()) return; - if (entity instanceof Player player) { - player.giveExperiencePoints(XP_POINTS); - level.setBlock(pos, Blocks.AIR.defaultBlockState(), 3); - } - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ExpFluidCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/ExpFluidCauldronBlock.java deleted file mode 100644 index 6c96f1f912..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/ExpFluidCauldronBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.util.ModInteractionMap; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; - -public class ExpFluidCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { - public ExpFluidCauldronBlock(Properties properties) { - super(properties, ModInteractionMap.EXP_FLUID); - } - - @Override - public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - if (level.isClientSide) return; - if (!this.isEntityInsideContent(state, pos, entity)) return; - if (entity instanceof Player player) { - if (!this.isFull(state)) return; - player.giveExperiencePoints(ExpFluidBlock.XP_POINTS); - level.setBlock(pos, Blocks.CAULDRON.defaultBlockState(), 3); - } - } - - @Override - public ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - CauldronInteraction interaction = this.interactions.map().get(stack.getItem()); - if (interaction == null) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - return interaction.interact(state, level, pos, player, hand, stack); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FireCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/FireCauldronBlock.java deleted file mode 100644 index 0aa7bdb978..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/FireCauldronBlock.java +++ /dev/null @@ -1,61 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.HitResult; - -public class FireCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { - public FireCauldronBlock(Properties properties) { - super(properties, CauldronInteraction.EMPTY); - } - - @Override - public void entityInside( - BlockState state, Level level, BlockPos pos, Entity entity) { - if (this.isEntityInsideContent(state, pos, entity)) { - entity.lavaHurt(); - } - } - - @Override - public ItemStack getCloneItemStack( - BlockState state, HitResult target, LevelReader level, BlockPos pos, Player player) { - return new ItemStack(Items.CAULDRON); - } - - @Override - public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean ignored) { - if (level.getBlockState(pos.below()).is(ModBlocks.HEATER)) { - level.scheduleTick(pos, this, 2); - } - } - - @Override - protected void neighborChanged( - BlockState state, Level level, BlockPos pos, Block neighborBlock, BlockPos neighborPos, boolean movedByPiston - ) { - if (level.getBlockState(pos.below()).is(ModBlocks.HEATER)) { - level.scheduleTick(pos, this, 2); - } - } - - @Override - protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { - BlockState below = level.getBlockState(pos.below()); - if (below.is(ModBlocks.HEATER) && !below.getValue(HeaterBlock.OVERLOAD) && !PlasmaJetsBlock.trySpawn(pos.above(), level)) { - level.scheduleTick(pos, this, 10); - } - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FishTankBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/FishTankBlock.java deleted file mode 100644 index 0c6938f148..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/FishTankBlock.java +++ /dev/null @@ -1,95 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.init.item.ModItemTags; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -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.block.Block; -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.phys.BlockHitResult; -import net.minecraft.world.phys.shapes.BooleanOp; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; - -public class FishTankBlock extends Block implements HammerRotateBehavior, IHammerRemovable { - public static final BooleanProperty TROPICAL = BooleanProperty.create("tropical"); - public static final BooleanProperty OUTLET = BooleanProperty.create("outlet"); - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; - - public static final VoxelShape INPUT = box(2.0, 14.0, 2.0, 14.0, 16.0, 14.0); - public static final VoxelShape INSIDE = box(1.0, 1.0, 1.0, 15.0, 14.0, 15.0); - public static final VoxelShape SHAPE = Shapes.join(Shapes.block(), Shapes.join(INSIDE, INPUT, BooleanOp.OR), BooleanOp.ONLY_FIRST); - - public FishTankBlock(Properties properties) { - super(properties); - this.registerDefaultState(this.stateDefinition.any() - .setValue(TROPICAL, false) - .setValue(OUTLET, false) - .setValue(FACING, Direction.NORTH)); - } - - @Override - protected MapCodec codec() { - return simpleCodec(FishTankBlock::new); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(TROPICAL, OUTLET, FACING); - } - - @Override - protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { - return SHAPE; - } - - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - Direction facing = context.getHorizontalDirection().getOpposite(); - return this.defaultBlockState().setValue(FACING, facing); - } - - @Override - protected ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - if (!stack.is(ModItemTags.ANVIL_HAMMER)) { - return super.useItemOn(stack, state, level, pos, player, hand, hitResult); - } - // 切换 OUTLET 状态 - if (!level.isClientSide()) { - // 水平的四个方向根据被右键的方向转换 - Direction newOutletDirection = Direction.from2DDataValue((hitResult.getDirection().get2DDataValue())); - boolean newOutletValue = !state.getValue(OUTLET); - BlockState newState = state.setValue(OUTLET, newOutletValue).setValue(FACING, newOutletDirection); - - level.setBlock(pos, newState, 3); - level.playSound(null, pos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 1.0f, 1.0f); - } - - return ItemInteractionResult.SUCCESS; - - } -} \ No newline at end of file diff --git a/src/main/java/dev/dubhe/anvilcraft/block/GunpowderBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/GunpowderBlock.java deleted file mode 100644 index e55bc9aee2..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/GunpowderBlock.java +++ /dev/null @@ -1,162 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.block.heatable.HeatableBlock; -import dev.dubhe.anvilcraft.block.heatable.NormalBlock; -import dev.dubhe.anvilcraft.init.item.ModItems; -import dev.dubhe.anvilcraft.item.MultitoolItem; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.stats.Stats; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.projectile.Projectile; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Explosion; -import net.minecraft.world.level.ExplosionDamageCalculator; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.BaseFireBlock; -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.material.FluidState; -import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -public class GunpowderBlock extends Block { - public GunpowderBlock(Properties properties) { - super(properties); - } - - public void explosion(Level level, BlockPos pos) { - if (level.isClientSide) { - return; - } - level.setBlock(pos, Blocks.AIR.defaultBlockState(), 11); - level.explode(null, - null, - new ExplosionDamageCalculator() { - @Override - public Optional getBlockExplosionResistance( - Explosion explosion, - BlockGetter reader, - BlockPos pos, - BlockState state, - FluidState fluid - ) { - return Optional.of(Float.MAX_VALUE); - } - - @Override - public boolean shouldDamageEntity(Explosion explosion, Entity entity) { - return false; - } - }, - pos.getX(), - pos.getY(), - pos.getZ(), - 4.0f, - false, - Level.ExplosionInteraction.BLOCK); - } - - @Override - protected ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - if (stack.is(Items.FLINT_AND_STEEL) - || stack.is(Items.FIRE_CHARGE) - || (stack.is(ModItems.MULTITOOL_ITEM) - && MultitoolItem.getMode(stack) == MultitoolItem.FLINT_AND_STEEL_MODE)) { - explosion(level, pos); - Item item = stack.getItem(); - if (stack.is(Items.FLINT_AND_STEEL) - || (stack.is(ModItems.MULTITOOL_ITEM) - && MultitoolItem.getMode(stack) == MultitoolItem.FLINT_AND_STEEL_MODE)) { - stack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); - } else { - stack.consume(1, player); - } - player.awardStat(Stats.ITEM_USED.get(item)); - return ItemInteractionResult.sidedSuccess(level.isClientSide); - } - return super.useItemOn(stack, state, level, pos, player, hand, hitResult); - } - - @Override - protected BlockState updateShape( - BlockState state, - Direction direction, - BlockState neighborState, - LevelAccessor level, - BlockPos pos, - BlockPos neighborPos - ) { - if (!level.isClientSide()) { - BlockState block = level.getBlockState(pos.relative(direction)); - if (block.getBlock() instanceof BaseFireBlock - || block.is(Blocks.LAVA) - || ((block.getBlock() instanceof HeatableBlock) && !(block.getBlock() instanceof NormalBlock))) { - explosion((Level) level, pos); - } - } - return super.updateShape(state, direction, neighborState, level, pos, neighborPos); - } - - @Override - protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { - if (!level.isClientSide()) { - for (Direction direction : Direction.values()) { - BlockState block = level.getBlockState(pos.relative(direction)); - if (block.getBlock() instanceof BaseFireBlock - || block.is(Blocks.LAVA) - || ((block.getBlock() instanceof HeatableBlock) && !(block.getBlock() instanceof NormalBlock))) { - explosion(level, pos); - } - } - } - } - - @Override - public void onCaughtFire(BlockState state, Level level, BlockPos pos, @Nullable Direction direction, @Nullable LivingEntity igniter) { - explosion(level, pos); - } - - @Override - protected void onProjectileHit(Level level, BlockState state, BlockHitResult hit, Projectile projectile) { - if (level.isClientSide) { - return; - } - BlockPos pos = hit.getBlockPos(); - if (projectile.isOnFire() && projectile.mayInteract(level, pos)) { - explosion(level, pos); - } - } - - @Override - public void wasExploded(Level level, BlockPos pos, Explosion explosion) { - if (level.isClientSide) { - return; - } - explosion(level, pos); - } - - @Override - public boolean canDropFromExplosion(BlockState state, BlockGetter level, BlockPos pos, Explosion explosion) { - return false; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HoneyCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/HoneyCauldronBlock.java deleted file mode 100644 index 5412b4007e..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/HoneyCauldronBlock.java +++ /dev/null @@ -1,55 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.util.ModInteractionMap; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; - -public class HoneyCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { - public HoneyCauldronBlock(Properties properties) { - super(properties, ModInteractionMap.HONEY); - } - - @Override - public ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - CauldronInteraction interaction = this.interactions.map().get(stack.getItem()); - if (interaction == null) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - return interaction.interact(state, level, pos, player, hand, stack); - } - - @Override - public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - } - - @Override - public ItemStack getCloneItemStack( - BlockState state, - HitResult target, - LevelReader level, - BlockPos pos, - Player player - ) { - return new ItemStack(Items.CAULDRON); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/LavaCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/LavaCauldronBlock.java deleted file mode 100644 index cc1e7a8e76..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/LavaCauldronBlock.java +++ /dev/null @@ -1,83 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.util.ModInteractionMap; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -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.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; - -public class LavaCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { - public LavaCauldronBlock(Properties properties) { - super(properties, ModInteractionMap.LAYERED_LAVA); - } - - @Override - public ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - CauldronInteraction interaction = this.interactions.map().get(stack.getItem()); - if (interaction == null) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - return interaction.interact(state, level, pos, player, hand, stack); - } - - @Override - public void entityInside( - BlockState state, Level level, BlockPos pos, Entity entity) { - if (this.isEntityInsideContent(state, pos, entity)) { - entity.lavaHurt(); - } - } - - @Override - public ItemStack getCloneItemStack( - BlockState state, - HitResult target, - LevelReader level, - BlockPos pos, - Player player - ) { - return new ItemStack(Items.CAULDRON); - } - - @Override - public void neighborChanged( - BlockState state, - Level level, - BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston) { - if (level.isClientSide) { - return; - } - if (this.isFull(state)) { - level.setBlockAndUpdate(pos, Blocks.LAVA_CAULDRON.defaultBlockState()); - } - } - - @Override - protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { - int layer = state.getValue(LEVEL); - return layer <= 2 ? layer : layer - 1; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/Layered4LevelCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/Layered4LevelCauldronBlock.java deleted file mode 100644 index 994d730ae2..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/Layered4LevelCauldronBlock.java +++ /dev/null @@ -1,78 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.AbstractCauldronBlock; -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.IntegerProperty; -import net.minecraft.world.level.gameevent.GameEvent; - -import java.util.Optional; - -public class Layered4LevelCauldronBlock extends AbstractCauldronBlock { - public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( - ins -> ins.group( - propertiesCodec(), - CauldronInteraction.CODEC.fieldOf("interactions").forGetter(block -> block.interactions) - ) - .apply(ins, Layered4LevelCauldronBlock::new) - ); - - public static final int MAX_LEVEL = 4; - - public static final IntegerProperty LEVEL = IntegerProperty.create("level", 1, MAX_LEVEL); - - public Layered4LevelCauldronBlock(Properties properties, CauldronInteraction.InteractionMap interactions) { - super(properties, interactions); - this.registerDefaultState(this.stateDefinition.any().setValue(LEVEL, 1)); - } - - public static void lowerFillLevel(BlockState state, Level level, BlockPos pos) { - int i = state.getValue(LEVEL) - 1; - BlockState blockstate = i == 0 ? Blocks.CAULDRON.defaultBlockState() : state.setValue(LEVEL, i); - level.setBlockAndUpdate(pos, blockstate); - level.gameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Context.of(blockstate)); - } - - @Override - protected MapCodec codec() { - return CODEC; - } - - @Override - public boolean isFull(BlockState state) { - return state.getValue(LEVEL) == MAX_LEVEL; - } - - @Override - protected double getContentHeight(BlockState state) { - return (6.0 + state.getValue(LEVEL) * 2.0) / 16.0; - } - - @Override - protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { - return state.getValue(LEVEL); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(LEVEL); - } - - public BlockState copyLevelFrom(BlockState otherCauldron) { - return this.defaultBlockState().setValue(LEVEL, Optional.of(otherCauldron) - .filter(state -> state.getBlock() instanceof Layered4LevelCauldronBlock) - .map(state -> state.getValue(LEVEL)) - .orElse(1)); - } - - public BlockState fullFilled() { - return this.defaultBlockState().setValue(LEVEL, MAX_LEVEL); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/LevitationPowderBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/LevitationPowderBlock.java deleted file mode 100644 index b51d3b78e7..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/LevitationPowderBlock.java +++ /dev/null @@ -1,48 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.entity.LevitatingBlockEntity; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.entity.item.FallingBlockEntity; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Fallable; -import net.minecraft.world.level.block.FallingBlock; -import net.minecraft.world.level.block.state.BlockState; - -public class LevitationPowderBlock extends FallingBlock { - public LevitationPowderBlock(Properties properties) { - super(properties); - } - - @Override - protected MapCodec codec() { - return null; - } - - @Override -protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { - super.tick(state, level, pos, random); - // 和上方重力方块交换位置 - BlockState above = level.getBlockState(pos.above()); - if (above.getBlock() instanceof FallingBlock && !(above.getBlock() instanceof LevitationPowderBlock)) { - if (above.getBlock() instanceof Fallable) { - FallingBlockEntity.fall(level, pos.above(), above); - } - LevitatingBlockEntity.levitate(level, pos, state); - } - } - - @Override - protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { - level.scheduleTick(pos, this, 2); - } - - @Override - protected void neighborChanged( - BlockState state, Level level, BlockPos pos, Block neighborBlock, BlockPos neighborPos, boolean movedByPiston) { - level.scheduleTick(pos, this, 2); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/MagneticChuteBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/MagneticChuteBlock.java deleted file mode 100644 index aabfda836b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/MagneticChuteBlock.java +++ /dev/null @@ -1,235 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; -import dev.dubhe.anvilcraft.block.better.BetterBaseEntityBlock; -import dev.dubhe.anvilcraft.block.entity.BaseChuteBlockEntity; -import dev.dubhe.anvilcraft.block.entity.MagneticChuteBlockEntity; -import dev.dubhe.anvilcraft.init.ModMenuTypes; -import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import dev.dubhe.anvilcraft.init.item.ModItems; -import dev.dubhe.anvilcraft.network.MachineEnableFilterPacket; -import dev.dubhe.anvilcraft.network.MachineOutputDirectionPacket; -import dev.dubhe.anvilcraft.network.SlotDisableChangePacket; -import dev.dubhe.anvilcraft.network.SlotFilterChangePacket; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.Containers; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.GameType; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.BaseEntityBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Mirror; -import net.minecraft.world.level.block.RenderShape; -import net.minecraft.world.level.block.Rotation; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -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.pathfinder.PathComputationType; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.BooleanOp; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; - -public class MagneticChuteBlock extends BetterBaseEntityBlock implements HammerRotateBehavior, IHammerRemovable { - public static final DirectionProperty FACING = BlockStateProperties.FACING; - public static final BooleanProperty ENABLED = BlockStateProperties.ENABLED; - - public static final VoxelShape SHAPE_UP = - Shapes.join(Block.box(4, 8, 4, 12, 16, 12), Block.box(0, 0, 0, 16, 8, 16), BooleanOp.OR); - public static final VoxelShape SHAPE_DOWN = - Shapes.join(Block.box(4, 0, 4, 12, 8, 12), Block.box(0, 8, 0, 16, 16, 16), BooleanOp.OR); - public static final VoxelShape SHAPE_W = - Shapes.join(Block.box(0, 4, 4, 8, 12, 12), Block.box(8, 0, 0, 16, 16, 16), BooleanOp.OR); - public static final VoxelShape SHAPE_E = - Shapes.join(Block.box(8, 4, 4, 16, 12, 12), Block.box(0, 0, 0, 8, 16, 16), BooleanOp.OR); - public static final VoxelShape SHAPE_S = - Shapes.join(Block.box(4, 4, 8, 12, 12, 16), Block.box(0, 0, 0, 16, 16, 8), BooleanOp.OR); - public static final VoxelShape SHAPE_N = - Shapes.join(Block.box(4, 4, 0, 12, 12, 8), Block.box(0, 0, 8, 16, 16, 16), BooleanOp.OR); - - /** - * 溜槽方块 - * - * @param properties 方块属性 - */ - public MagneticChuteBlock(Properties properties) { - super(properties); - this.registerDefaultState( - this.stateDefinition.any().setValue(FACING, Direction.DOWN).setValue(ENABLED, true)); - } - - @Override - protected MapCodec codec() { - return simpleCodec(MagneticChuteBlock::new); - } - - @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext collisionContext) { - return switch (state.getValue(FACING)) { - case NORTH -> SHAPE_N; - case SOUTH -> SHAPE_S; - case WEST -> SHAPE_W; - case EAST -> SHAPE_E; - case DOWN -> SHAPE_DOWN; - case UP -> SHAPE_UP; - }; - } - - @Override - protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) { - return false; - } - - @Override - public RenderShape getRenderShape(BlockState state) { - return RenderShape.MODEL; - } - - @Override - public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return new MagneticChuteBlockEntity(ModBlockEntities.MAGNETIC_CHUTE.get(), pos, state); - } - - @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - if (!state.is(newState.getBlock())) { - if (level.getBlockEntity(pos) instanceof BaseChuteBlockEntity entity) { - Vec3 vec3 = entity.getBlockPos().getCenter(); - FilteredItemStackHandler depository = entity.getItemHandler(); - for (int slot = 0; slot < depository.getSlots(); slot++) { - Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, depository.getStackInSlot(slot)); - } - level.updateNeighbourForOutputSignal(pos, this); - } - } - super.onRemove(state, level, pos, newState, movedByPiston); - } - - @Override - public boolean hasAnalogOutputSignal(BlockState blockState) { - return true; - } - - @Override - public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos blockPos) { - BlockEntity blockEntity = level.getBlockEntity(blockPos); - if (blockEntity instanceof MagneticChuteBlockEntity magneticChuteBlockEntity) { - return magneticChuteBlockEntity.getRedstoneSignal(); - } - return 0; - } - - @Nullable - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - Level level = context.getLevel(); - BlockPos pos = context.getClickedPos(); - Player player = context.getPlayer(); - Direction facing = context.getNearestLookingDirection(); - if (player != null && player.isShiftKeyDown()) facing = facing.getOpposite(); - BlockState neighborState = level.getBlockState(pos.relative(facing)); - boolean cannotPlace = facing == Direction.UP - && (neighborState.is(ModBlocks.SIMPLE_CHUTE) || neighborState.is(ModBlocks.CHUTE)) - && neighborState.getValue(FACING_HOPPER) == Direction.DOWN; - if (cannotPlace) { - if (player != null) player.displayClientMessage(Component.translatable("message.anvilcraft.chute.cannot_place"), true); - return null; - } - return this.defaultBlockState() - .setValue(FACING, facing) - .setValue(ENABLED, !context.getLevel().hasNeighborSignal(context.getClickedPos())); - } - - @Override - public BlockState rotate(BlockState state, Rotation rotation) { - return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); - } - - @Override - public BlockState mirror(BlockState state, Mirror mirror) { - return this.rotate(state, mirror.getRotation(state.getValue(FACING))); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(FACING, ENABLED); - } - - @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { - this.checkPoweredState(level, pos, state); - } - - private void checkPoweredState(Level level, BlockPos pos, BlockState state) { - boolean flag = !level.hasNeighborSignal(pos); - if (flag != state.getValue(ENABLED)) { - level.setBlock(pos, state.setValue(ENABLED, flag), 2); - } - } - - @Override - public @Nullable BlockEntityTicker getTicker( - Level level, BlockState state, BlockEntityType blockEntityType) { - if (level.isClientSide()) { - return null; - } - return createTickerHelper( - blockEntityType, - ModBlockEntities.MAGNETIC_CHUTE.get(), - ((level1, blockPos, blockState, blockEntity) -> blockEntity.tick())); - } - - @Override - public InteractionResult use( - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hit - ) { - if (level.isClientSide) { - return InteractionResult.SUCCESS; - } - BlockEntity blockEntity = level.getBlockEntity(pos); - if (blockEntity instanceof MagneticChuteBlockEntity entity) { - if (player.getItemInHand(hand).is(ModItems.DISK.get())) { - return entity.useDisk(level, player, hand, player.getItemInHand(hand), hit); - } - if (player instanceof ServerPlayer serverPlayer) { - if (serverPlayer.gameMode.getGameModeForPlayer() == GameType.SPECTATOR) return InteractionResult.PASS; - ModMenuTypes.open(serverPlayer, entity, pos); - PacketDistributor.sendToPlayer(serverPlayer, new MachineOutputDirectionPacket(entity.getDirection())); - PacketDistributor.sendToPlayer(serverPlayer, new MachineEnableFilterPacket(entity.isFilterEnabled())); - for (int i = 0; i < entity.getFilteredItems().size(); i++) { - PacketDistributor.sendToPlayer( - serverPlayer, - new SlotDisableChangePacket( - i, entity.getItemHandler().getDisabled().get(i))); - PacketDistributor.sendToPlayer(serverPlayer, new SlotFilterChangePacket(i, entity.getFilter(i))); - } - } - } - return InteractionResult.SUCCESS; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/MeltGemCauldron.java b/src/main/java/dev/dubhe/anvilcraft/block/MeltGemCauldron.java deleted file mode 100644 index a12ca50d93..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/MeltGemCauldron.java +++ /dev/null @@ -1,59 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.block.better.BetterAbstractCauldronBlock; -import dev.dubhe.anvilcraft.util.ModInteractionMap; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.AbstractCauldronBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; - -public class MeltGemCauldron extends BetterAbstractCauldronBlock implements IHammerRemovable { - public MeltGemCauldron(Properties properties) { - super(properties, ModInteractionMap.MELT_GEM); - } - - @Override - public ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - CauldronInteraction interaction = this.interactions.map().get(stack.getItem()); - if (interaction == null) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - return interaction.interact(state, level, pos, player, hand, stack); - } - - @Override - protected MapCodec codec() { - return simpleCodec(MeltGemCauldron::new); - } - - @Override - protected double getContentHeight(BlockState state) { - return 0.9375; - } - - @Override - public boolean isFull(BlockState state) { - return true; - } - - @Override - public int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { - return 3; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ObsidianCauldron.java b/src/main/java/dev/dubhe/anvilcraft/block/ObsidianCauldron.java deleted file mode 100644 index 7d4b0da0d0..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/ObsidianCauldron.java +++ /dev/null @@ -1,36 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.block.better.BetterAbstractCauldronBlock; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.AbstractCauldronBlock; -import net.minecraft.world.level.block.state.BlockState; - -public class ObsidianCauldron extends BetterAbstractCauldronBlock implements IHammerRemovable { - public ObsidianCauldron(Properties properties) { - super(properties, CauldronInteraction.EMPTY); - } - - @Override - protected MapCodec codec() { - return simpleCodec(ObsidianCauldron::new); - } - - @Override - protected double getContentHeight(BlockState state) { - return 0.9375; - } - - @Override - public boolean isFull(BlockState state) { - return true; - } - - @Override - public int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { - return 3; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/OilCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/OilCauldronBlock.java deleted file mode 100644 index e5fd3f8f20..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/OilCauldronBlock.java +++ /dev/null @@ -1,65 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import dev.dubhe.anvilcraft.init.item.ModItemTags; -import dev.dubhe.anvilcraft.util.ModInteractionMap; -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; - -public class OilCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { - public OilCauldronBlock(Properties properties) { - super(properties, ModInteractionMap.OIL); - } - - public static void ignite(LevelAccessor level, BlockPos pos, BlockState beforeConvert) { - level.setBlock(pos, ModBlocks.FIRE_CAULDRON.get().copyLevelFrom(beforeConvert), 3); - } - - @Override - public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - if (level.isClientSide) return; - if (!this.isEntityInsideContent(state, pos, entity)) return; - if (entity.getType().equals(EntityType.ARROW) && entity.isOnFire()) { - ignite(level, pos, state); - return; - } - if (!(entity instanceof ItemEntity itemEntity)) return; - if (itemEntity.getItem().is(ModItemTags.FIRE_STARTER)) { - ignite(level, pos, state); - itemEntity.getItem().setCount(itemEntity.getItem().getCount() - 1); - return; - } - if (itemEntity.getItem().is(ModItemTags.UNBROKEN_FIRE_STARTER)) { - ignite(level, pos, state); - } - } - - @Override - public ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - CauldronInteraction interaction = this.interactions.map().get(stack.getItem()); - if (interaction == null) { - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - return interaction.interact(state, level, pos, player, hand, stack); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/PlasmaJetsBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/PlasmaJetsBlock.java deleted file mode 100644 index 44c41d4105..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/PlasmaJetsBlock.java +++ /dev/null @@ -1,72 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.block.entity.PlasmaJetsBlockEntity; -import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.BaseEntityBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; - -public class PlasmaJetsBlock extends BaseEntityBlock { - public PlasmaJetsBlock(Properties properties) { - super(properties); - } - - @Override - protected MapCodec codec() { - return simpleCodec(PlasmaJetsBlock::new); - } - - public static boolean trySpawn(BlockPos pos, Level level) { - BlockState cauldron = level.getBlockState(pos.below()); - BlockState heater = level.getBlockState(pos.below().below()); - if ( - !cauldron.is(ModBlocks.FIRE_CAULDRON) - || !heater.is(ModBlocks.HEATER) - || heater.getValue(HeaterBlock.OVERLOAD) - ) { - return false; - } - for (int i = 0; i < 8; i++) { - if (!level.getBlockState(pos.above(i)).isAir()) { - return false; - } - } - for (Direction direction : Direction.values()) { - if (!direction.getAxis().isHorizontal()) { - continue; - } - if (!level.getBlockState(pos.relative(direction)).isFaceSturdy(level, pos.relative(direction), direction.getOpposite())) { - return false; - } - } - level.setBlock(pos, ModBlocks.PLASMA_JETS.getDefaultState(), 3); - return true; - } - - @Override - protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { - return Shapes.empty(); - } - - @Override - public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - return createTickerHelper(type, ModBlockEntities.PLASMA_JETS.get(), PlasmaJetsBlockEntity::tick); - } - - @Override - public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return ModBlockEntities.PLASMA_JETS.create(pos, state); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/PropelPiston.java b/src/main/java/dev/dubhe/anvilcraft/block/PropelPiston.java deleted file mode 100644 index ca1154dd35..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/PropelPiston.java +++ /dev/null @@ -1,324 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.mojang.serialization.MapCodec; -import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; -import dev.anvilcraft.lib.v2.piston.injection.IPistonMovingBlockEntityExtension; -import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.block.entity.PropelPistonBlockEntity; -import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.init.item.ModItems; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.tags.BlockTags; -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.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.DirectionalBlock; -import net.minecraft.world.level.block.Mirror; -import net.minecraft.world.level.block.Rotation; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.piston.MovingPistonBlock; -import net.minecraft.world.level.block.piston.PistonStructureResolver; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.block.state.properties.Property; -import net.minecraft.world.level.material.PushReaction; -import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Map; - -public class PropelPiston extends DirectionalBlock implements IMoveableEntityBlock, IHammerRemovable, IHammerChangeable { - public static final BooleanProperty EXHAUSTED = BooleanProperty.create("exhausted"); - public static final BooleanProperty MOVING = BooleanProperty.create("moving"); - - @Override - protected MapCodec codec() { - return simpleCodec(PropelPiston::new); - } - - public PropelPiston(Properties properties) { - super(properties); - this.registerDefaultState(this.stateDefinition.any() - .setValue(EXHAUSTED, true) - .setValue(FACING, Direction.NORTH) - .setValue(MOVING, false)); - } - - @Override - public @Nullable PushReaction getPistonPushReaction(BlockState state) { - if (state.getValue(MOVING)) { - return PushReaction.BLOCK; - } - return PushReaction.NORMAL; - } - - @Override - public @Nullable BlockState getStateForPlacement(BlockPlaceContext context) { - Direction clickedFace = context.getNearestLookingDirection().getOpposite(); - Player player = context.getPlayer(); - if (player != null && player.isShiftKeyDown()) { - return this.defaultBlockState().setValue(FACING, clickedFace.getOpposite()); - } - return this.defaultBlockState().setValue(FACING, clickedFace); - } - - @Override - protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { - level.setBlockAndUpdate(pos, state.cycle(MOVING)); - return InteractionResult.SUCCESS; - } - - @Override - protected ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - if (level.getBlockEntity(pos) instanceof PropelPistonBlockEntity propelPistonBlockEntity) { - int storedEnergy = propelPistonBlockEntity.getStoredEnergy(); - if (stack.is(ModItems.CAPACITOR)) { - if (storedEnergy < 76000) { - propelPistonBlockEntity.addEnergy(4000); - stack.consume(1, player); - player.addItem(ModItems.CAPACITOR_EMPTY.asStack()); - return ItemInteractionResult.SUCCESS; - } - } else if (stack.is(ModItems.SUPER_CAPACITOR)) { - if (storedEnergy < 20000) { - propelPistonBlockEntity.updateStoredEnergy(80000); - stack.consume(1, player); - player.addItem(ModItems.SUPER_CAPACITOR_EMPTY.asStack()); - return ItemInteractionResult.SUCCESS; - } - } - } - level.setBlockAndUpdate(pos, state.cycle(MOVING)); - return super.useItemOn(stack, state, level, pos, player, hand, hitResult); - } - - @Override - protected void neighborChanged( - BlockState state, - Level level, - BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston - ) { - if (level.hasNeighborSignal(pos)) { - if (!state.getValue(MOVING)) { - level.setBlockAndUpdate(pos, state.setValue(MOVING, true)); - } - } - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(EXHAUSTED, FACING, MOVING); - } - - @Override - protected BlockState rotate(BlockState state, Rotation rotation) { - return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); - } - - @SuppressWarnings("deprecation") - @Override - protected BlockState mirror(BlockState state, Mirror mirror) { - return state.rotate(mirror.getRotation(state.getValue(FACING))); - } - - @Override - public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return ModBlockEntities.PROPEL_PISTON.create(pos, state); - } - - @Override - public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) { - return null; - } - return createTickerHelper(type, - ModBlockEntities.PROPEL_PISTON.get(), - (level1, blockPos, blockState, blockEntity) -> - blockEntity.tick(level1, blockPos, blockState)); - } - - @Override - public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { - Integer energy = stack.getOrDefault(ModComponents.STORED_ENERGY, 0); - BlockEntity blockEntity = level.getBlockEntity(pos); - if (blockEntity instanceof PropelPistonBlockEntity propelPistonBlockEntity) { - propelPistonBlockEntity.updateStoredEnergy(energy); - } - } - - @Override - public CompoundTag clearData(Level level, BlockPos pos) { - BlockEntity blockEntity = level.getBlockEntity(pos); - if (blockEntity instanceof PropelPistonBlockEntity propelPistonBlockEntity) { - CompoundTag tag = new CompoundTag(); - tag.putInt("storedEnergyData", propelPistonBlockEntity.getStoredEnergy()); - return tag; - } - return new CompoundTag(); - } - - @Override - public void setData(Level level, BlockPos pos, CompoundTag nbt) { - BlockEntity blockEntity = level.getBlockEntity(pos); - if (blockEntity instanceof PropelPistonBlockEntity propelPistonBlockEntity) { - int data = nbt.getInt("storedEnergyData"); - propelPistonBlockEntity.updateStoredEnergy(data); - } - } - - @Override - protected boolean triggerEvent(BlockState state, Level level, BlockPos pos, int id, int param) { - Direction direction = state.getValue(PropelPiston.FACING); - if (id == 0) { - if (net.neoforged.neoforge.event.EventHooks.onPistonMovePre(level, pos, direction, true)) { - level.setBlockAndUpdate(pos, state.setValue(MOVING, false)); - return false; - } - if (!this.moveBlocks(level, pos, direction)) { - level.setBlockAndUpdate(pos, state.setValue(MOVING, false)); - return false; - } - level.playSound(null, pos, SoundEvents.PISTON_EXTEND, SoundSource.BLOCKS, 0.5F, level.random.nextFloat() * 0.25F + 0.6F); - } - net.neoforged.neoforge.event.EventHooks.onPistonMovePost(level, pos, direction, (id == 0)); - level.scheduleTick(pos.relative(direction), this, 6); - return true; - } - - @Override - public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { - BlockState state = level.getBlockState(blockPos); - level.setBlockAndUpdate(blockPos, state.cycle(FACING)); - return true; - } - - @Override - public @Nullable Property getChangeableProperty(BlockState blockState) { - return FACING; - } - - private boolean moveBlocks(Level level, BlockPos pos, Direction facing) { - PistonStructureResolver pistonstructureresolver = new PistonStructureResolver(level, pos, facing, true); - if (!pistonstructureresolver.resolve()) { - return false; - } else { - Map map = Maps.newHashMap(); - List list = pistonstructureresolver.getToPush(); - List list1 = Lists.newArrayList(); - list.addFirst(pos); - - if (level.getBlockEntity(pos) instanceof PropelPistonBlockEntity propelPistonBlockEntity) { - propelPistonBlockEntity.addEnergy(-(list.size() * 5)); - } - - for (BlockPos blockPos1 : list) { - BlockState blockState = level.getBlockState(blockPos1); - list1.add(blockState); - map.put(blockPos1, blockState); - } - - List list2 = pistonstructureresolver.getToDestroy(); - BlockState[] blockStates = new BlockState[list.size() + list2.size()]; - int i = 0; - - for (int j = list2.size() - 1; j >= 0; j--) { - BlockPos blockPos2 = list2.get(j); - BlockState blockState1 = level.getBlockState(blockPos2); - BlockEntity blockentity = blockState1.hasBlockEntity() ? level.getBlockEntity(blockPos2) : null; - dropResources(blockState1, level, blockPos2, blockentity); - blockState1.onDestroyedByPushReaction(level, blockPos2, facing, level.getFluidState(blockPos2)); - if (!blockState1.is(BlockTags.FIRE)) { - level.addDestroyBlockEffect(blockPos2, blockState1); - } - - blockStates[i++] = blockState1; - } - - for (int k = list.size() - 1; k >= 0; k--) { - BlockPos blockPos3 = list.get(k); - final BlockState blockState5 = level.getBlockState(blockPos3); - blockPos3 = blockPos3.relative(facing); - map.remove(blockPos3); - BlockState blockState8 = Blocks.MOVING_PISTON.defaultBlockState().setValue(FACING, facing); - CompoundTag nbt = new CompoundTag(); - if (list1.get(k).getBlock() instanceof IMoveableEntityBlock block) { - nbt = block.clearData(level, blockPos3.relative(facing.getOpposite())); - } - level.setBlock(blockPos3, blockState8, 68); - BlockEntity blockEntity = MovingPistonBlock.newMovingBlockEntity(blockPos3, blockState8, list1.get(k), facing, true, false); - if (blockEntity instanceof IPistonMovingBlockEntityExtension entity) { - entity.anvillib$setData(nbt); - } - level.setBlockEntity(blockEntity); - blockStates[i++] = blockState5; - } - - BlockState blockState3 = Blocks.AIR.defaultBlockState(); - - for (BlockPos blockPos4 : map.keySet()) { - level.setBlock(blockPos4, blockState3, 82); - } - - for (Map.Entry entry : map.entrySet()) { - BlockPos blockPos5 = entry.getKey(); - BlockState blockState2 = entry.getValue(); - blockState2.updateIndirectNeighbourShapes(level, blockPos5, 2); - blockState3.updateNeighbourShapes(level, blockPos5, 2); - blockState3.updateIndirectNeighbourShapes(level, blockPos5, 2); - } - - i = 0; - - for (int l = list2.size() - 1; l >= 0; l--) { - BlockState blockState7 = blockStates[i++]; - BlockPos blockPos6 = list2.get(l); - blockState7.updateIndirectNeighbourShapes(level, blockPos6, 2); - level.updateNeighborsAt(blockPos6, blockState7.getBlock()); - } - - for (int i1 = list.size() - 1; i1 >= 0; i1--) { - level.updateNeighborsAt(list.get(i1), blockStates[i++].getBlock()); - } - - return true; - } - } - - @SuppressWarnings("unchecked") - @Nullable - public static BlockEntityTicker createTickerHelper( - BlockEntityType serverType, BlockEntityType clientType, BlockEntityTicker ticker - ) { - return clientType == serverType ? (BlockEntityTicker) ticker : null; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ReinforcedConcreteBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/ReinforcedConcreteBlock.java deleted file mode 100644 index 415d862a47..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/ReinforcedConcreteBlock.java +++ /dev/null @@ -1,93 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.block.state.ReinforcedConcreteHalf; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.piston.PistonMovingBlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.EnumProperty; - -public class ReinforcedConcreteBlock extends Block { - public static final EnumProperty HALF = EnumProperty.create("half", ReinforcedConcreteHalf.class); - - public ReinforcedConcreteBlock(Properties properties) { - super(properties); - this.registerDefaultState(this.stateDefinition.any().setValue(HALF, ReinforcedConcreteHalf.SINGLE)); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(HALF); - } - - private boolean checkHalf(BlockState state, ReinforcedConcreteHalf half) { - return state.is(this) && state.getValue(HALF) == half; - } - - /** - * When piston finished a block movement, this block will receive an NC update where neighborPos is - * same as pos. So we cannot ignore the update when neighborPos.equals(pos). - * - * @param pos the position where block being updated - * @param fromPos the position where block update is spread from - * @return If the NC update should be ignored. - * @see PistonMovingBlockEntity#tick(Level, BlockPos, BlockState, PistonMovingBlockEntity) - */ - private static boolean shouldIgnoreUpdate(BlockPos pos, BlockPos fromPos) { - return pos.getY() == fromPos.getY() && (pos.getX() != fromPos.getX() || pos.getZ() != fromPos.getZ()); - } - - @Override - public void neighborChanged( - BlockState state, - Level level, - BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston) { - if (level.isClientSide) return; - if (shouldIgnoreUpdate(pos, neighborPos)) return; - ReinforcedConcreteHalf half = state.getValue(HALF); - BlockState aboveState = level.getBlockState(pos.above()); - BlockState belowState = level.getBlockState(pos.below()); - switch (half) { - case TOP: - if (this.checkHalf(belowState, ReinforcedConcreteHalf.SINGLE)) { - level.setBlock(pos.below(), state.setValue(HALF, ReinforcedConcreteHalf.BOTTOM), 2); - } else if (!this.checkHalf(belowState, ReinforcedConcreteHalf.BOTTOM)) { - level.setBlock(pos, state.setValue(HALF, ReinforcedConcreteHalf.SINGLE), 2); - } - break; - case BOTTOM: - if (this.checkHalf(aboveState, ReinforcedConcreteHalf.SINGLE)) { - level.setBlock(pos.above(), state.setValue(HALF, ReinforcedConcreteHalf.TOP), 2); - } else if (!this.checkHalf(aboveState, ReinforcedConcreteHalf.TOP)) { - level.setBlock(pos, state.setValue(HALF, ReinforcedConcreteHalf.SINGLE), 2); - } - break; - case SINGLE: - if (neighborPos.equals(pos.below()) && this.checkHalf(belowState, ReinforcedConcreteHalf.SINGLE)) { - level.setBlock(pos, state.setValue(HALF, ReinforcedConcreteHalf.TOP), 2); - level.setBlock(pos.below(), state.setValue(HALF, ReinforcedConcreteHalf.BOTTOM), 2); - } else if (neighborPos.equals(pos.above()) && this.checkHalf(aboveState, ReinforcedConcreteHalf.SINGLE)) { - level.setBlock(pos, state.setValue(HALF, ReinforcedConcreteHalf.BOTTOM), 2); - level.setBlock(pos.above(), state.setValue(HALF, ReinforcedConcreteHalf.TOP), 2); - } - break; - default: - } - } - - @Override - public void tick( - BlockState state, - ServerLevel level, - BlockPos pos, - RandomSource random) { - super.tick(state, level, pos, random); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/SimpleChuteBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/SimpleChuteBlock.java deleted file mode 100644 index 7dbb66742b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/SimpleChuteBlock.java +++ /dev/null @@ -1,318 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import com.mojang.serialization.MapCodec; -import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; -import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; -import dev.dubhe.anvilcraft.block.entity.ChuteBlockEntity; -import dev.dubhe.anvilcraft.block.entity.SimpleChuteBlockEntity; -import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.Containers; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.BaseEntityBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Mirror; -import net.minecraft.world.level.block.RenderShape; -import net.minecraft.world.level.block.Rotation; -import net.minecraft.world.level.block.SimpleWaterloggedBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -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.Property; -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.phys.HitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.BooleanOp; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.neoforge.items.IItemHandler; -import org.jetbrains.annotations.Nullable; - -public class SimpleChuteBlock - extends BaseEntityBlock - implements SimpleWaterloggedBlock, IHammerChangeable, IHammerRemovable { - public static final DirectionProperty FACING = BlockStateProperties.FACING_HOPPER; - public static final BooleanProperty ENABLED = BlockStateProperties.ENABLED; - public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; - public static final BooleanProperty TALL = BooleanProperty.create("tall"); - - public static final VoxelShape AABB = Block.box(2, 0, 2, 14, 12, 14); - public static final VoxelShape AABB_TALL = Block.box(2, 0, 2, 14, 16, 14); - public static final VoxelShape AABB_N = Block.box(4, 4, 0, 12, 12, 12); - public static final VoxelShape AABB_TALL_N = - Shapes.join(Block.box(4, 4, 0, 12, 12, 12), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); - public static final VoxelShape AABB_E = Block.box(4, 4, 4, 16, 12, 12); - public static final VoxelShape AABB_TALL_E = - Shapes.join(Block.box(4, 4, 4, 16, 12, 12), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); - public static final VoxelShape AABB_S = Block.box(4, 4, 4, 12, 12, 16); - public static final VoxelShape AABB_TALL_S = - Shapes.join(Block.box(4, 4, 4, 12, 12, 16), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); - public static final VoxelShape AABB_W = Block.box(0, 4, 4, 12, 12, 12); - public static final VoxelShape AABB_TALL_W = - Shapes.join(Block.box(0, 4, 4, 12, 12, 12), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); - - public SimpleChuteBlock(Properties properties) { - super(properties); - this.registerDefaultState(this.stateDefinition - .any() - .setValue(FACING, Direction.DOWN) - .setValue(WATERLOGGED, false) - .setValue(ENABLED, true) - .setValue(TALL, false)); - } - - @Override - protected MapCodec codec() { - return simpleCodec(SimpleChuteBlock::new); - } - - @Nullable - @Override - public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return new SimpleChuteBlockEntity(ModBlockEntities.SIMPLE_CHUTE.get(), pos, state); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(FACING, WATERLOGGED, ENABLED, TALL); - } - - @Override - protected void neighborChanged( - BlockState state, - Level level, - BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston - ) { - if (level.isClientSide) return; - BlockState neighborState = level.getBlockState(neighborPos); - Block neighborBlock1 = neighborState.getBlock(); - if (ChuteBlock.isChuteBlock(neighborBlock) || ChuteBlock.isChuteBlock(neighborBlock1)) { - BlockState newState = getState(level, pos, state.getValue(FACING)); - if (newState != null && newState != state) level.setBlockAndUpdate(pos, newState); - } - this.checkPoweredState(level, pos, state); - } - - private void checkPoweredState(Level level, BlockPos pos, BlockState state) { - boolean flag = !level.hasNeighborSignal(pos); - if (flag != state.getValue(ENABLED)) { - level.setBlock(pos, state.setValue(ENABLED, flag), 2); - } - } - - @Override - protected BlockState updateShape( - BlockState state, - Direction facing, - BlockState facingState, - LevelAccessor level, - BlockPos currentPos, - BlockPos facingPos - ) { - if (state.getValue(WATERLOGGED)) { - level.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); - } - return super.updateShape(state, facing, facingState, level, currentPos, facingPos); - } - - @Override - public ItemStack getCloneItemStack( - BlockState state, - HitResult target, - LevelReader level, - BlockPos pos, - Player player - ) { - return new ItemStack(ModBlocks.CHUTE); - } - - @Override - public void tick( - BlockState state, - ServerLevel level, - BlockPos pos, - RandomSource random - ) { - if (!state.getValue(ENABLED) && !level.hasNeighborSignal(pos)) { - level.setBlock(pos, state.cycle(ENABLED), 2); - } - } - - @Override - public RenderShape getRenderShape(BlockState state) { - return RenderShape.MODEL; - } - - @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - if (!state.is(newState.getBlock())) { - if (level.getBlockEntity(pos) instanceof SimpleChuteBlockEntity oldEntity) { - IItemHandler oldHandler = oldEntity.getItemHandler(); - if (newState.is(ModBlocks.CHUTE.get())) { - level.removeBlockEntity(pos); - level.setBlock(pos, newState, 2); - IItemHandler newHandler = null; - if (level.getBlockEntity(pos) instanceof ChuteBlockEntity newEntity) { - newHandler = newEntity.getItemHandler(); - } - ItemHandlerUtil.exportToTarget(oldHandler, 64, stack -> true, newHandler); - } else level.removeBlockEntity(pos); - Vec3 vec3 = oldEntity.getBlockPos().getCenter(); - for (int slot = 0; slot < oldHandler.getSlots(); slot++) { - Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, oldHandler.getStackInSlot(slot)); - } - level.updateNeighbourForOutputSignal(pos, this); - } - } - - } - - @Nullable - @Override - public BlockEntityTicker getTicker( - Level level, BlockState state, BlockEntityType blockEntityType) { - if (level.isClientSide) return null; - return createTickerHelper( - blockEntityType, - ModBlockEntities.SIMPLE_CHUTE.get(), - ((level1, blockPos, blockState, blockEntity) -> blockEntity.tick())); - } - - @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { - Direction facing = state.getValue(FACING); - if (!state.getValue(TALL)) { - return switch (facing) { - case NORTH -> AABB_N; - case EAST -> AABB_E; - case SOUTH -> AABB_S; - case WEST -> AABB_W; - default -> AABB; - }; - } else { - return switch (facing) { - case NORTH -> AABB_TALL_N; - case EAST -> AABB_TALL_E; - case SOUTH -> AABB_TALL_S; - case WEST -> AABB_TALL_W; - default -> AABB_TALL; - }; - } - } - - @Override - protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) { - return false; - } - - @Override - public boolean hasAnalogOutputSignal(BlockState blockState) { - return true; - } - - @Override - public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos blockPos) { - BlockEntity blockEntity = level.getBlockEntity(blockPos); - if (blockEntity instanceof SimpleChuteBlockEntity chuteBlockEntity) { - return chuteBlockEntity.getRedstoneSignal(); - } - return 0; - } - - @Override - public FluidState getFluidState(BlockState state) { - return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(state); - } - - @Override - public boolean change(Player player, BlockPos pos, Level level, ItemStack anvilHammer) { - HammerRotateBehavior.DEFAULT.change(player, pos, level, anvilHammer); - BlockState state = level.getBlockState(pos); - BlockState facingState = level.getBlockState(pos.relative(state.getValue(FACING))); - if (facingState.is(ModBlocks.CHUTE.get()) || facingState.is(ModBlocks.SIMPLE_CHUTE.get())) { - if (facingState.getValue(FACING).getOpposite() == state.getValue(FACING)) { - return this.change(player, pos, level, anvilHammer); - } - } - return true; - } - - @Override - public @Nullable Property getChangeableProperty(BlockState blockState) { - return FACING; - } - - @Override - public BlockState rotate(BlockState state, Rotation rotation) { - return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); - } - - @SuppressWarnings("deprecation") - @Override - public BlockState mirror(BlockState state, Mirror mirror) { - return state.rotate(mirror.getRotation(state.getValue(FACING))); - } - - @Nullable - BlockState getState(Level level, BlockPos pos, Direction facing) { - boolean success = false; - boolean tall = false; - BlockState result = level.getBlockState(pos); - // 遍历六个方向 获取指向自己的溜槽 - for (Direction dir : Direction.values()) { - BlockPos neighborPos = pos.relative(dir); - BlockState neighborState = level.getBlockState(neighborPos); - if (ChuteBlock.isChuteBlock(neighborState)) { - if (ChuteBlock.getFacing(neighborState) == dir.getOpposite()) { - success = true; - if (dir == Direction.UP) { - tall = !neighborState.is(ModBlocks.MAGNETIC_CHUTE.get()); - } - } - - } - } - if (!success) { - result = ModBlocks.CHUTE.getDefaultState() - .setValue(FACING, facing) - .setValue(ENABLED, !level.hasNeighborSignal(pos)); - } else { - result = result.setValue(TALL, tall); - } - return result; - } - - // 防止流体流动时破坏溜槽 - @Override - public boolean canBeReplaced(BlockState state, net.minecraft.world.level.material.Fluid fluid) { - return false; - } - - // 防止玩家使用桶放置流体时直接替换掉溜槽 - @Override - public boolean canBeReplaced(BlockState state, net.minecraft.world.item.context.BlockPlaceContext context) { - return false; - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/StepEffectBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/StepEffectBlock.java deleted file mode 100644 index 7a8c486a75..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/StepEffectBlock.java +++ /dev/null @@ -1,48 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; - -import java.util.function.Consumer; - -public class StepEffectBlock extends Block { - private final Consumer stepAction; - public static final int EFFECT_PERIOD = 80; - public static final int EFFECT_DURATION = 180; - - public StepEffectBlock(Properties properties, Consumer stepAction) { - super(properties); - this.stepAction = stepAction; - } - - @Override - public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { - stepAction.accept(entity); - } - - public static void stepOnChocolateBlock(Entity entity) { - if (!(entity instanceof Player player)) return; - if (entity.level().getGameTime() % EFFECT_PERIOD != 0) return; - player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, EFFECT_DURATION, 9, true, true)); - } - - public static void stepOnBlackChocolateBlock(Entity entity) { - if (!(entity instanceof Player player)) return; - if (entity.level().getGameTime() % EFFECT_PERIOD != 0) return; - player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, EFFECT_DURATION, 4, true, true)); - player.addEffect(new MobEffectInstance(MobEffects.DIG_SPEED, EFFECT_DURATION, 3, true, true)); - } - - public static void stepOnWhiteChocolateBlock(Entity entity) { - if (!(entity instanceof Player player)) return; - if (entity.level().getGameTime() % EFFECT_PERIOD != 0) return; - player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, EFFECT_DURATION, 4, true, true)); - player.addEffect(new MobEffectInstance(MobEffects.JUMP, EFFECT_DURATION, 5, true, true)); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/TransparentCraftingTableBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/TransparentCraftingTableBlock.java deleted file mode 100644 index 3329e26c28..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/TransparentCraftingTableBlock.java +++ /dev/null @@ -1,287 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.AnvilCraft; -import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.init.ModMenuTypes; -import dev.dubhe.anvilcraft.init.block.ModBlockTags; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.stats.Stats; -import net.minecraft.util.StringRepresentable; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.MenuProvider; -import net.minecraft.world.SimpleMenuProvider; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.ContainerLevelAccess; -import net.minecraft.world.inventory.CraftingMenu; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.TransparentBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.EnumProperty; -import net.minecraft.world.phys.BlockHitResult; - -public class TransparentCraftingTableBlock extends TransparentBlock implements IHammerRemovable { - - public static final EnumProperty TYPE = EnumProperty.create("type", Type.class); - - public TransparentCraftingTableBlock(Properties properties) { - super(properties); - registerDefaultState(stateDefinition.any().setValue(TYPE, Type.SINGLE)); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(TYPE); - } - - @Override - protected ItemInteractionResult useItemOn( - ItemStack stack, - BlockState state, - Level level, - BlockPos pos, - Player player, - InteractionHand hand, - BlockHitResult hitResult - ) { - if (stack.is(ModBlocks.TRANSPARENT_CRAFTING_TABLE.asItem())) { - return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; - } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; - } - - @Override - protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { - if (level.isClientSide) return InteractionResult.SUCCESS; - ModMenuTypes.open((ServerPlayer) player, getMenuProvider(state, level, pos)); - player.awardStat(Stats.INTERACT_WITH_CRAFTING_TABLE); - return InteractionResult.sidedSuccess(level.isClientSide()); - } - - @Override - protected MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) { - return new SimpleMenuProvider( - (id, inventory, player) -> new CraftingMenu(id, inventory, ContainerLevelAccess.create(level, pos)), - Component.translatable("container.crafting") - ); - } - - @Override - protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { - if (oldState.is(this)) return; - if (this.tryFormMatrix(level, pos)) { - return; - } - if (state.getValue(TYPE) != Type.SINGLE) level.setBlockAndUpdate(pos, state.setValue(TYPE, Type.SINGLE)); - Direction.Plane.HORIZONTAL.stream() - .map(pos::relative) - .filter(poz -> { - BlockState adjacentState = level.getBlockState(poz); - return adjacentState.is(this) && adjacentState.getValue(TYPE) != Type.SINGLE; - }) - .forEach(poz -> deformMatrix(level, poz)); - } - - @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - if (newState.is(this)) return; - if (state.getValue(TYPE) != Type.SINGLE) { - this.deformMatrix(level, pos); - return; - } - Direction.Plane.HORIZONTAL.stream() - .map(pos::relative) - .forEach(poz -> this.tryFormMatrix(level, poz)); - } - - @Override - protected BlockState updateShape( - BlockState state, - Direction direction, - BlockState neighborState, - LevelAccessor level, - BlockPos pos, - BlockPos neighborPos - ) { - if (neighborState.is(this)) return state; - if (this.tryFormMatrix((Level) level, pos)) { - return state; - } - if (state.getValue(TYPE) != Type.SINGLE && !isValidMatrixBlock(neighborState, false)) { - this.deformMatrix((Level) level, pos); - return state; - } - return state; - } - - /** - * 以某个方块为起始点,尝试构建一个有透明工作台组成的矩阵。 - * 若与该方块相连的所有透明工作台不构成一个长方形,构建失败。 - * - * @param level 尝试构建矩阵的维度 - * @param pos 尝试构建矩阵的方块位置 - * @return 是否成功构建透明工作台矩阵 - */ - private boolean tryFormMatrix(Level level, BlockPos pos) { - if (!isValidMatrixBlock(level.getBlockState(pos), false)) return false; - int maxSize = AnvilCraft.CONFIG.transparentCraftingTableMaxMatrixSize; - int x0 = pos.getX(); - int y0 = pos.getY(); - int z0 = pos.getZ(); - BlockPos.MutableBlockPos mpos = pos.mutable(); - // 以放置方块为起始点,向正负x、z轴逐个延申并进行检测,扩充至最大作为矩阵尺寸。 - int minX = x0; - int maxX = x0; - while ((maxX - minX < maxSize) && isValidMatrixBlock(level.getBlockState(mpos.set(minX - 1, y0, z0)), false)) { - minX--; - } - while ((maxX - minX < maxSize) && isValidMatrixBlock(level.getBlockState(mpos.set(maxX + 1, y0, z0)), false)) { - maxX++; - } - int sizeX = maxX - minX + 1; - if (sizeX < 2 || sizeX > maxSize) return false; - int minZ = z0; - int maxZ = z0; - while ((maxZ - minZ < maxSize) && isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, minZ - 1)), false)) { - minZ--; - } - while ((maxZ - minZ < maxSize) && isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, maxZ + 1)), false)) { - maxZ++; - } - int sizeZ = maxZ - minZ + 1; - if (sizeZ < 2 || sizeZ > maxSize) return false; - // 检测矩阵内所有方块是否匹配 - for (int x = minX; x <= maxX; x++) { - if (x == x0) continue; - for (int z = minZ; z <= maxZ; z++) { - if (z == z0) continue; - if (!isValidMatrixBlock(level.getBlockState(mpos.set(x, y0, z)), false)) return false; - } - } - // 向矩阵外圈检测是否有多余的方块 - for (int x = minX; x <= maxX; x++) { - if (isValidMatrixBlock(level.getBlockState(mpos.set(x, y0, minZ - 1)), true)) return false; - if (isValidMatrixBlock(level.getBlockState(mpos.set(x, y0, maxZ + 1)), true)) return false; - } - for (int z = minZ; z <= maxZ; z++) { - if (isValidMatrixBlock(level.getBlockState(mpos.set(minX - 1, y0, z)), true)) return false; - if (isValidMatrixBlock(level.getBlockState(mpos.set(maxX + 1, y0, z)), true)) return false; - } - // 将矩阵内的通透工作台转换为连接状态 - for (int x = minX; x <= maxX; x++) { - for (int z = minZ; z <= maxZ; z++) { - int indexX = x == maxX ? 2 : x > minX ? 1 : 0; - int indexZ = z == maxZ ? 2 : z > minZ ? 1 : 0; - BlockState state = level.getBlockState(mpos.set(x, y0, z)); - if (!state.is(this)) continue; - level.setBlockAndUpdate(mpos, state.setValue(TYPE, Type.LOOKUP[indexX][indexZ])); - } - } - return true; - } - - /** - * 以某个方块为起始点,尝试移除该方块所属的透明工作台组成的矩阵。 - * - * @param level 尝试移除矩阵的维度 - * @param pos 尝试移除矩阵的方块位置 - */ - private void deformMatrix(Level level, BlockPos pos) { - int x0 = pos.getX(); - int y0 = pos.getY(); - int z0 = pos.getZ(); - BlockPos.MutableBlockPos mpos = pos.mutable(); - - int minX = x0; - int maxX = x0; - while (isValidMatrixBlock(level.getBlockState(mpos.set(minX - 1, y0, z0)), false)) { - minX--; - } - while (isValidMatrixBlock(level.getBlockState(mpos.set(maxX + 1, y0, z0)), false)) { - maxX++; - } - int minZ = z0; - int maxZ = z0; - while (isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, minZ - 1)), false)) { - minZ--; - } - while (isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, maxZ + 1)), false)) { - maxZ++; - } - - for (int x = minX; x <= maxX; x++) { - for (int z = minZ; z <= maxZ; z++) { - BlockState state = level.getBlockState(mpos.set(x, y0, z)); - if (!state.is(this)) continue; - level.setBlockAndUpdate(mpos, state.setValue(TYPE, Type.SINGLE)); - } - } - } - - /** - * 判断是否是通透工作台或其它允许参与形成矩阵的方块(目前仅包含空间超压器)。 - * - * @param block 需要进行判断的方块 - * @param isSelfOnly 是否只匹配通透工作台 - * @return 判断结果 - */ - public boolean isValidMatrixBlock(BlockState block, Boolean isSelfOnly) { - return block.is(this) || (!isSelfOnly && block.is(ModBlockTags.CRAFTING_MATRIX_ELEMENT)); - } - - public enum Type implements StringRepresentable { - SINGLE("single"), - CENTER("center"), - SIDE_NORTH("side_n"), - SIDE_EAST("side_e"), - SIDE_SOUTH("side_s"), - SIDE_WEST("side_w"), - CORNER_NORTH_WEST("corner_nw"), - CORNER_NORTH_EAST("corner_ne"), - CORNER_SOUTH_WEST("corner_sw"), - CORNER_SOUTH_EAST("corner_se"); - - public static final Type[][] LOOKUP = { - { - CORNER_NORTH_WEST, - SIDE_WEST, - CORNER_SOUTH_WEST - }, - { - SIDE_NORTH, - CENTER, - SIDE_SOUTH - }, - { - CORNER_NORTH_EAST, - SIDE_EAST, - CORNER_SOUTH_EAST - } - }; - - final String serializedName; - - Type(String serializedName) { - this.serializedName = serializedName; - } - - @Override - public String getSerializedName() { - return serializedName; - } - - @Override - public String toString() { - return getSerializedName(); - } - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/VoidMatterBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/VoidMatterBlock.java deleted file mode 100644 index 14cca35e4e..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/VoidMatterBlock.java +++ /dev/null @@ -1,39 +0,0 @@ -package dev.dubhe.anvilcraft.block; - -import dev.dubhe.anvilcraft.init.block.ModBlockTags; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.registries.Registries; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; - -public class VoidMatterBlock extends Block { - public static final int VOID_DECAY_THRESHOLD = 5; - - public VoidMatterBlock(Properties properties) { - super(properties.randomTicks()); - } - - public static BlockState voidDecay(Level level, BlockPos pos, BlockState state, RandomSource random) { - return level.registryAccess().registryOrThrow(Registries.BLOCK) - .getTag(ModBlockTags.VOID_DECAY_PRODUCTS) - .flatMap(it -> it.getRandomElement(random)) - .map(h -> h.value().defaultBlockState()) - .orElse(state); - } - - @Override - protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { - long neighborVoidMatterCount = Direction.stream() - .map(d -> level.getBlockState(pos.relative(d))) - .filter(b -> b.getBlock() instanceof VoidMatterBlock) - .count(); - if (neighborVoidMatterCount >= VOID_DECAY_THRESHOLD) { - level.setBlockAndUpdate(pos, voidDecay(level, pos, state, random)); - } - } - -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/batch/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/batch/package-info.java deleted file mode 100644 index f341281f49..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/batch/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.block.batch; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterAbstractCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterAbstractCauldronBlock.java deleted file mode 100644 index 2eb880d340..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterAbstractCauldronBlock.java +++ /dev/null @@ -1,28 +0,0 @@ -package dev.dubhe.anvilcraft.block.better; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.cauldron.CauldronInteraction; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.AbstractCauldronBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.HitResult; - -public abstract class BetterAbstractCauldronBlock extends AbstractCauldronBlock { - public BetterAbstractCauldronBlock(Properties properties, CauldronInteraction.InteractionMap interactions) { - super(properties, interactions); - } - - @Override - public ItemStack getCloneItemStack( - BlockState state, - HitResult target, - LevelReader level, - BlockPos pos, - Player player - ) { - return new ItemStack(Items.CAULDRON); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterAnvilBlock.java index 031dbf45ed..67370351cf 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterAnvilBlock.java @@ -1,10 +1,8 @@ package dev.dubhe.anvilcraft.block.better; -import dev.anvilcraft.lib.v2.util.Util; import net.minecraft.core.BlockPos; 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.level.Level; @@ -18,7 +16,7 @@ public BetterAnvilBlock(Properties properties) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -27,7 +25,7 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - return Util.interactionResultConverter().apply(this.use(state, level, pos, player, hand, hitResult)); + return this.use(state, level, pos, player, hand, hitResult); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBaseEntityBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBaseEntityBlock.java index 0eba4c4c4f..643ff3083e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBaseEntityBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBaseEntityBlock.java @@ -1,10 +1,8 @@ package dev.dubhe.anvilcraft.block.better; -import dev.anvilcraft.lib.v2.util.Util; import net.minecraft.core.BlockPos; 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.level.Level; @@ -18,7 +16,7 @@ protected BetterBaseEntityBlock(Properties properties) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -27,7 +25,7 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - return Util.interactionResultConverter().apply(this.use(state, level, pos, player, hand, hitResult)); + return this.use(state, level, pos, player, hand, hitResult); } @Override @@ -41,8 +39,7 @@ protected InteractionResult useWithoutItem( return this.use(state, level, pos, player, InteractionHand.MAIN_HAND, hitResult); } - public InteractionResult use( - BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { return InteractionResult.PASS; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBlock.java index 3dfab5c74f..a3efe20994 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterBlock.java @@ -1,10 +1,8 @@ package dev.dubhe.anvilcraft.block.better; -import dev.anvilcraft.lib.v2.util.Util; import net.minecraft.core.BlockPos; 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.level.Level; @@ -18,7 +16,7 @@ public BetterBlock(Properties properties) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -27,7 +25,7 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - return Util.interactionResultConverter().apply(this.use(state, level, pos, player, hand, hitResult)); + return this.use(state, level, pos, player, hand, hitResult); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterGrindstoneBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterGrindstoneBlock.java index 3aac99d98f..6ac6a3ecae 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/better/BetterGrindstoneBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/better/BetterGrindstoneBlock.java @@ -1,10 +1,8 @@ package dev.dubhe.anvilcraft.block.better; -import dev.anvilcraft.lib.v2.util.Util; import net.minecraft.core.BlockPos; 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.level.Level; @@ -19,7 +17,7 @@ public BetterGrindstoneBlock(Properties properties) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -28,7 +26,7 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - return Util.interactionResultConverter().apply(this.use(state, level, pos, player, hand, hitResult)); + return this.use(state, level, pos, player, hand, hitResult); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/better/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/better/package-info.java index 39c8d95fe3..b2f3f5536e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/better/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/better/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.better; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCakeBlock.java new file mode 100644 index 0000000000..a2404fee7a --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCakeBlock.java @@ -0,0 +1,18 @@ +package dev.dubhe.anvilcraft.block.cake; + +public class BerryCakeBlock extends ShovelEatableCakeBlock { + + public BerryCakeBlock(Properties properties) { + super(properties); + } + + @Override + public int getFoodLevel() { + return 14; + } + + @Override + public float getSaturationLevel() { + return 0.6F; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCreamBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCreamBlock.java new file mode 100644 index 0000000000..a433fddec9 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/BerryCreamBlock.java @@ -0,0 +1,18 @@ +package dev.dubhe.anvilcraft.block.cake; + +public class BerryCreamBlock extends ShovelEatableCakeBlock { + + public BerryCreamBlock(Properties properties) { + super(properties); + } + + @Override + public int getFoodLevel() { + return 8; + } + + @Override + public float getSaturationLevel() { + return 0.4F; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBaseBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBaseBlock.java new file mode 100644 index 0000000000..97b0109e96 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBaseBlock.java @@ -0,0 +1,18 @@ +package dev.dubhe.anvilcraft.block.cake; + +public class CakeBaseBlock extends ShovelEatableCakeBlock { + + public CakeBaseBlock(Properties properties) { + super(properties); + } + + @Override + public int getFoodLevel() { + return 5; + } + + @Override + public float getSaturationLevel() { + return 0.8F; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBlock.java new file mode 100644 index 0000000000..4401545eca --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/CakeBlock.java @@ -0,0 +1,18 @@ +package dev.dubhe.anvilcraft.block.cake; + +public class CakeBlock extends ShovelEatableCakeBlock { + + public CakeBlock(Properties properties) { + super(properties); + } + + @Override + public int getFoodLevel() { + return 10; + } + + @Override + public float getSaturationLevel() { + return 0.6F; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCakeBlock.java new file mode 100644 index 0000000000..327138e4a3 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCakeBlock.java @@ -0,0 +1,18 @@ +package dev.dubhe.anvilcraft.block.cake; + +public class ChocolateCakeBlock extends ShovelEatableCakeBlock { + + public ChocolateCakeBlock(Properties properties) { + super(properties); + } + + @Override + public int getFoodLevel() { + return 20; + } + + @Override + public float getSaturationLevel() { + return 0.6F; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCreamBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCreamBlock.java new file mode 100644 index 0000000000..a58ae90a82 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/ChocolateCreamBlock.java @@ -0,0 +1,18 @@ +package dev.dubhe.anvilcraft.block.cake; + +public class ChocolateCreamBlock extends ShovelEatableCakeBlock { + + public ChocolateCreamBlock(Properties properties) { + super(properties); + } + + @Override + public int getFoodLevel() { + return 12; + } + + @Override + public float getSaturationLevel() { + return 0.4F; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/CreamBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/CreamBlock.java new file mode 100644 index 0000000000..f5be2ab253 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/CreamBlock.java @@ -0,0 +1,18 @@ +package dev.dubhe.anvilcraft.block.cake; + +public class CreamBlock extends ShovelEatableCakeBlock { + + public CreamBlock(Properties properties) { + super(properties); + } + + @Override + public int getFoodLevel() { + return 5; + } + + @Override + public float getSaturationLevel() { + return 0.4F; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/LargeCakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/LargeCakeBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/LargeCakeBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/cake/LargeCakeBlock.java index c507f03894..f5fdb14baa 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/LargeCakeBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/LargeCakeBlock.java @@ -1,10 +1,12 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.cake; import dev.dubhe.anvilcraft.block.multipart.SimpleMultiPartBlock; import dev.dubhe.anvilcraft.block.state.Cube3x3PartHalf; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.BlockTags; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.monster.piglin.PiglinAi; @@ -12,8 +14,8 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Mirror; @@ -202,7 +204,7 @@ public float getShadeBrightness(BlockState state, BlockGetter level, BlockPos po } @Override - public boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } @@ -223,23 +225,29 @@ public void onPlace( } @Override - public BlockState updateShape( + protected BlockState updateShape( BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, Direction direction, + BlockPos neighborPos, BlockState neighborState, - LevelAccessor level, - BlockPos pos, - BlockPos neighborPos + RandomSource random ) { return direction == Direction.DOWN && !state.canSurvive(level, pos) ? Blocks.AIR.defaultBlockState() : state; } @Override public BlockState playerWillDestroy( - Level level, BlockPos pos, BlockState state, Player player) { + Level level, + BlockPos pos, + BlockState state, + Player player + ) { this.spawnDestroyParticles(level, player, pos, state); - if (state.is(BlockTags.GUARDED_BY_PIGLINS)) { - PiglinAi.angerNearbyPiglins(player, false); + if (level instanceof ServerLevel && state.is(BlockTags.GUARDED_BY_PIGLINS)) { + PiglinAi.angerNearbyPiglins((ServerLevel) level, player, false); } level.gameEvent(GameEvent.BLOCK_DESTROY, pos, GameEvent.Context.of(player, state)); @@ -262,7 +270,7 @@ public InteractionResult use( BlockHitResult hit ) { ItemStack itemStack = player.getItemInHand(hand); - if (level.isClientSide) { + if (level.isClientSide()) { if (eat(level, pos, player).consumesAction()) { return InteractionResult.SUCCESS; } @@ -279,7 +287,7 @@ private static InteractionResult eat(Level level, BlockPos pos, Player player) { if (!player.canEat(false)) { return InteractionResult.PASS; } else { - player.getFoodData().eat(15, 0.8f); + player.getFoodData().eat(15, 0.8F); removeFromTop(level, pos, player); return InteractionResult.SUCCESS; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/ShovelEatableCakeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/ShovelEatableCakeBlock.java new file mode 100644 index 0000000000..45a3b1ea7f --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/ShovelEatableCakeBlock.java @@ -0,0 +1,88 @@ +package dev.dubhe.anvilcraft.block.cake; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.material.PushReaction; +import net.minecraft.world.phys.BlockHitResult; +import net.neoforged.neoforge.common.ItemAbilities; + +public class ShovelEatableCakeBlock extends Block { + public ShovelEatableCakeBlock(Properties properties) { + super(properties.pushReaction(PushReaction.NORMAL)); + } + + @Override + @SuppressWarnings("RedundantMethodOverride") + protected InteractionResult useWithoutItem( + BlockState state, + Level level, + BlockPos pos, + Player player, + BlockHitResult hitResult + ) { + return InteractionResult.PASS; + } + + @Override + protected InteractionResult useItemOn( + ItemStack stack, + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hitResult + ) { + ItemStack itemStack = player.getItemInHand(hand); + if (!(itemStack.getItem().canPerformAction(itemStack, ItemAbilities.SHOVEL_DOUSE))) { + return InteractionResult.PASS; + } + if (level.isClientSide()) { + if (eat(level, pos, player, this.getFoodLevel(), this.getSaturationLevel()).consumesAction()) { + return InteractionResult.SUCCESS; + } + + if (itemStack.isEmpty()) { + return InteractionResult.CONSUME; + } + } else { + InteractionResult result = eat(level, pos, player, this.getFoodLevel(), this.getSaturationLevel()); + if (result == InteractionResult.SUCCESS) itemStack.hurtAndBreak(1, player, hand.asEquipmentSlot()); + return result; + } + return InteractionResult.PASS; + } + + private static InteractionResult eat( + LevelAccessor level, + BlockPos pos, + Player player, + int foodLevel, + float saturationLevel + ) { + if (!player.canEat(false)) { + return InteractionResult.PASS; + } else { + player.getFoodData().eat(foodLevel, saturationLevel); + level.removeBlock(pos, false); + level.gameEvent(player, GameEvent.BLOCK_DESTROY, pos); + return InteractionResult.SUCCESS; + } + } + + public int getFoodLevel() { + return 0; + } + + public float getSaturationLevel() { + return 0; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectBlock.java new file mode 100644 index 0000000000..5d73875cc2 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectBlock.java @@ -0,0 +1,48 @@ +package dev.dubhe.anvilcraft.block.cake; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.function.Consumer; + +public class StepEffectBlock extends Block { + private final Consumer stepAction; + public static final int EFFECT_PERIOD = 80; + public static final int EFFECT_DURATION = 180; + + public StepEffectBlock(Properties properties, Consumer stepAction) { + super(properties); + this.stepAction = stepAction; + } + + @Override + public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { + this.stepAction.accept(entity); + } + + public static void stepOnChocolateBlock(Entity entity) { + if (!(entity instanceof Player player)) return; + if (entity.level().getGameTime() % EFFECT_PERIOD != 0) return; + player.addEffect(new MobEffectInstance(MobEffects.SPEED, EFFECT_DURATION, 9, true, true)); + } + + public static void stepOnBlackChocolateBlock(Entity entity) { + if (!(entity instanceof Player player)) return; + if (entity.level().getGameTime() % EFFECT_PERIOD != 0) return; + player.addEffect(new MobEffectInstance(MobEffects.SPEED, EFFECT_DURATION, 4, true, true)); + player.addEffect(new MobEffectInstance(MobEffects.HASTE, EFFECT_DURATION, 3, true, true)); + } + + public static void stepOnWhiteChocolateBlock(Entity entity) { + if (!(entity instanceof Player player)) return; + if (entity.level().getGameTime() % EFFECT_PERIOD != 0) return; + player.addEffect(new MobEffectInstance(MobEffects.SPEED, EFFECT_DURATION, 4, true, true)); + player.addEffect(new MobEffectInstance(MobEffects.JUMP_BOOST, EFFECT_DURATION, 5, true, true)); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/StepEffectSlabBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectSlabBlock.java similarity index 88% rename from src/main/java/dev/dubhe/anvilcraft/block/StepEffectSlabBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectSlabBlock.java index a0ca65bd44..c8bbe11d1a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/StepEffectSlabBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectSlabBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.cake; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; @@ -18,7 +18,7 @@ public StepEffectSlabBlock(Properties properties, Consumer stepAction) { @Override public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { - stepAction.accept(entity); + this.stepAction.accept(entity); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/StepEffectStairBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectStairBlock.java similarity index 89% rename from src/main/java/dev/dubhe/anvilcraft/block/StepEffectStairBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectStairBlock.java index fc76d0c114..a6b92c6d0a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/StepEffectStairBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/StepEffectStairBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.cake; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; @@ -18,7 +18,7 @@ public StepEffectStairBlock(BlockState baseState, Properties properties, Consume @Override public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { - stepAction.accept(entity); + this.stepAction.accept(entity); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cake/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/cake/package-info.java new file mode 100644 index 0000000000..0151ae4ea3 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cake/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.cake; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/BaseCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/BaseCauldronBlock.java new file mode 100644 index 0000000000..cc85468f3b --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/BaseCauldronBlock.java @@ -0,0 +1,25 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.cauldron.CauldronInteraction; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.AbstractCauldronBlock; +import net.minecraft.world.level.block.state.BlockState; + +public abstract class BaseCauldronBlock extends AbstractCauldronBlock { + public BaseCauldronBlock(Properties properties) { + this(properties, new CauldronInteraction.Dispatcher()); + } + + public BaseCauldronBlock(Properties properties, CauldronInteraction.Dispatcher dispatcher) { + super(properties, dispatcher); + } + + @Override + public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData, Player player) { + return new ItemStack(Items.CAULDRON); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/CementCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/CementCauldronBlock.java new file mode 100644 index 0000000000..6f9ebd0ea8 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/CementCauldronBlock.java @@ -0,0 +1,47 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.block.state.Color; +import dev.dubhe.anvilcraft.util.ModInteractionMap; +import lombok.Getter; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.AbstractCauldronBlock; +import net.minecraft.world.level.block.state.BlockState; + +@Getter +public class CementCauldronBlock extends BaseCauldronBlock implements IHammerRemovable { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( + propertiesCodec(), Color.CODEC.fieldOf("color").forGetter(CementCauldronBlock::getColor) + ).apply(ins, CementCauldronBlock::new)); + + private final Color color; + + public CementCauldronBlock(Properties properties, Color color) { + super(properties, ModInteractionMap.CEMENT); + this.color = color; + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Override + protected double getContentHeight(BlockState state) { + return 0.9375; + } + + @Override + public boolean isFull(BlockState state) { + return true; + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + return 3; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/ExpFluidCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/ExpFluidCauldronBlock.java new file mode 100644 index 0000000000..fe68db0fd2 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/ExpFluidCauldronBlock.java @@ -0,0 +1,35 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.block.fluid.ExpFluidBlock; +import dev.dubhe.anvilcraft.util.ModInteractionMap; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.InsideBlockEffectApplier; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; + +public class ExpFluidCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { + public ExpFluidCauldronBlock(Properties properties) { + super(properties, ModInteractionMap.EXP_FLUID); + } + + @Override + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + if (level.isClientSide()) return; + if (entity instanceof Player player) { + if (!this.isFull(state)) return; + player.giveExperiencePoints(ExpFluidBlock.XP_POINTS); + level.setBlock(pos, Blocks.CAULDRON.defaultBlockState(), 3); + } + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/HoneyCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/HoneyCauldronBlock.java new file mode 100644 index 0000000000..13f7453203 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/HoneyCauldronBlock.java @@ -0,0 +1,10 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.util.ModInteractionMap; + +public class HoneyCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { + public HoneyCauldronBlock(Properties properties) { + super(properties, ModInteractionMap.HONEY); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/LavaCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/LavaCauldronBlock.java new file mode 100644 index 0000000000..11a3b6099d --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/LavaCauldronBlock.java @@ -0,0 +1,51 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.util.ModInteractionMap; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.InsideBlockEffectApplier; +import net.minecraft.world.level.Level; +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.redstone.Orientation; +import org.jspecify.annotations.Nullable; + +public class LavaCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable { + public LavaCauldronBlock(Properties properties) { + super(properties, ModInteractionMap.LAVA); + } + + @Override + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + entity.lavaHurt(); + } + + @Override + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { + if (level.isClientSide()) return; + if (this.isFull(state)) level.setBlockAndUpdate(pos, Blocks.LAVA_CAULDRON.defaultBlockState()); + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + int layer = state.getValue(LEVEL); + return layer <= 2 ? layer : layer - 1; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/Layered4LevelCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/Layered4LevelCauldronBlock.java new file mode 100644 index 0000000000..f85e48cd55 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/Layered4LevelCauldronBlock.java @@ -0,0 +1,104 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.cauldron.CauldronInteraction; +import net.minecraft.core.cauldron.CauldronInteractions; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.AbstractCauldronBlock; +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.IntegerProperty; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.phys.shapes.VoxelShape; + +import java.util.Optional; + +public class Layered4LevelCauldronBlock extends BaseCauldronBlock { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( + propertiesCodec(), + CauldronInteractions.CODEC + .fieldOf("interactions") + .forGetter(block -> block.interactions) + ).apply(ins, Layered4LevelCauldronBlock::new)); + + public static final int MAX_LEVEL = 4; + public static final IntegerProperty LEVEL = IntegerProperty.create("level", 1, MAX_LEVEL); + + public Layered4LevelCauldronBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(LEVEL, 1)); + } + + public Layered4LevelCauldronBlock(Properties properties, CauldronInteraction.Dispatcher interactions) { + super(properties, interactions); + this.registerDefaultState(this.stateDefinition.any().setValue(LEVEL, 1)); + } + + public static void lowerFillLevel(BlockState state, Level level, BlockPos pos) { + int i = state.getValue(LEVEL) - 1; + BlockState blockstate = i == 0 ? Blocks.CAULDRON.defaultBlockState() : state.setValue(LEVEL, i); + level.setBlockAndUpdate(pos, blockstate); + level.gameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Context.of(blockstate)); + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Override + public boolean isFull(BlockState state) { + return state.getValue(LEVEL) == MAX_LEVEL; + } + + @Override + protected double getContentHeight(BlockState state) { + return (6.0 + state.getValue(LEVEL) * 2.0) / 16.0; + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + return state.getValue(LEVEL); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(LEVEL); + } + + public BlockState copyLevelFrom(BlockState otherCauldron) { + return this.defaultBlockState().setValue(LEVEL, Optional.of(otherCauldron) + .filter(state -> state.getBlock() instanceof Layered4LevelCauldronBlock) + .map(state -> state.getValue(LEVEL)) + .orElse(1)); + } + + public BlockState fullFilled() { + return this.defaultBlockState().setValue(LEVEL, MAX_LEVEL); + } + + // Shapes + + @Override + protected VoxelShape getEntityInsideCollisionShape(BlockState state, BlockGetter level, BlockPos pos, Entity entity) { + return switch (state.getValue(LEVEL)) { + case 1 -> LEVEL1; + case 2 -> LEVEL2; + case 3 -> LEVEL3; + case 4 -> LEVEL4; + case null, default -> throw new IllegalStateException("Unexpected value " + state.getValue(LEVEL) + ". How did you get here?"); + }; + } + + protected static final VoxelShape LEVEL1 = Block.box(2, 4, 2, 14, 6, 14); + protected static final VoxelShape LEVEL2 = Block.box(2, 4, 2, 14, 9, 14); + protected static final VoxelShape LEVEL3 = Block.box(2, 4, 2, 14, 12, 14); + protected static final VoxelShape LEVEL4 = Block.box(2, 4, 2, 14, 15, 14); +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/MeltGemCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/MeltGemCauldronBlock.java new file mode 100644 index 0000000000..b06f34be78 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/MeltGemCauldronBlock.java @@ -0,0 +1,36 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.util.ModInteractionMap; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.AbstractCauldronBlock; +import net.minecraft.world.level.block.state.BlockState; + +public class MeltGemCauldronBlock extends BaseCauldronBlock implements IHammerRemovable { + public MeltGemCauldronBlock(Properties properties) { + super(properties, ModInteractionMap.MELT_GEM); + } + + @Override + protected MapCodec codec() { + return simpleCodec(MeltGemCauldronBlock::new); + } + + @Override + protected double getContentHeight(BlockState state) { + return 0.9375; + } + + @Override + public boolean isFull(BlockState state) { + return true; + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + return 3; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/ObsidianCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/ObsidianCauldronBlock.java new file mode 100644 index 0000000000..7843d23f5d --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/ObsidianCauldronBlock.java @@ -0,0 +1,36 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.util.ModInteractionMap; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.AbstractCauldronBlock; +import net.minecraft.world.level.block.state.BlockState; + +public class ObsidianCauldronBlock extends BaseCauldronBlock implements IHammerRemovable { + public ObsidianCauldronBlock(Properties properties) { + super(properties, ModInteractionMap.OBSIDIAN); + } + + @Override + protected MapCodec codec() { + return simpleCodec(ObsidianCauldronBlock::new); + } + + @Override + protected double getContentHeight(BlockState state) { + return 0.9375; + } + + @Override + public boolean isFull(BlockState state) { + return true; + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + return 3; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/OilCauldronBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/OilCauldronBlock.java new file mode 100644 index 0000000000..9a4d8ad019 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/OilCauldronBlock.java @@ -0,0 +1,79 @@ +package dev.dubhe.anvilcraft.block.cauldron; + +import dev.anvilcraft.lib.v2.recipe.cache.BlockCache; +import dev.dubhe.anvilcraft.api.block.IIgnitableCauldron; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.init.block.ModFluids; +import dev.dubhe.anvilcraft.init.item.ModItemTags; +import dev.dubhe.anvilcraft.util.ModInteractionMap; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.InsideBlockEffectApplier; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.Fluid; + +public class OilCauldronBlock extends Layered4LevelCauldronBlock implements IHammerRemovable, IIgnitableCauldron { + public static final BooleanProperty IGNITED = BooleanProperty.create("ignited"); + + public OilCauldronBlock(Properties properties) { + super(properties, ModInteractionMap.OIL); + this.registerDefaultState(this.stateDefinition.any().setValue(LEVEL, 1).setValue(OilCauldronBlock.IGNITED, false)); + } + + public static void ignite(LevelAccessor level, BlockPos pos) { + level.setBlock(pos, level.getBlockState(pos).setValue(OilCauldronBlock.IGNITED, true), 3); + } + + @Override + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + if (level.isClientSide()) return; + if (entity.getType().equals(EntityType.ARROW) && entity.isOnFire()) { + ignite(level, pos); + return; + } + if (!(entity instanceof ItemEntity itemEntity)) return; + if (itemEntity.getItem().is(ModItemTags.FIRE_STARTER)) { + ignite(level, pos); + itemEntity.getItem().setCount(itemEntity.getItem().getCount() - 1); + return; + } + if (itemEntity.getItem().is(ModItemTags.UNBROKEN_FIRE_STARTER)) { + ignite(level, pos); + } + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(OilCauldronBlock.IGNITED); + } + + @Override + public boolean isIgnited(BlockCache cache, BlockPos pos) { + return cache.getBlockState(pos).getValue(OilCauldronBlock.IGNITED); + } + + @Override + public void setIgnited(BlockCache cache, BlockPos pos, boolean ignited) { + cache.setBlock(pos, cache.getBlockState(pos).setValue(OilCauldronBlock.IGNITED, ignited)); + } + + @Override + public Fluid getFluid(BlockCache cache, BlockPos pos) { + return ModFluids.OIL.get(); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cauldron/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/package-info.java new file mode 100644 index 0000000000..76cdc3f18f --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/cauldron/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.cauldron; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilAmplifierBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilAmplifierBlock.java index 5bb7b744ed..9d8263b478 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilAmplifierBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilAmplifierBlock.java @@ -18,20 +18,19 @@ 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.Property; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class CelestialForgingAnvilAmplifierBlock - extends FlexibleMultiPartBlock + extends FlexibleMultiPartBlock, Direction> implements IHammerChangeable, IHammerRemovable { public static final EnumProperty HALF = EnumProperty.create("half", DirectionCube232PartHalf.class); - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; public static final VoxelShape NORTH_TIP = ShapeUtil.merge( new AABB(0, 0, 0, 16, 4, 16), new AABB(5, 5, 5, 10, 10, 10) @@ -171,7 +170,7 @@ public DirectionCube232PartHalf[] getParts() { } @Override - public DirectionProperty getAdditionalProperty() { + public EnumProperty getAdditionalProperty() { return FACING; } @@ -194,7 +193,7 @@ protected BlockState mirror(BlockState state, Mirror mirror) { @Override public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { - this.change(blockPos, level, (state) -> state.cycle(FACING)); + this.change(blockPos, level, state -> state.cycle(FACING)); return true; } @@ -210,14 +209,11 @@ protected VoxelShape getVisualShape(BlockState state, BlockGetter level, BlockPo @Override protected float getShadeBrightness(BlockState state, BlockGetter level, BlockPos pos) { - return 1.0f; + return 1.0F; } @Override - protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } - - // region VoxelShapes - // E } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilBlock.java index 6577a52927..37704ab7c5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/CelestialForgingAnvilBlock.java @@ -4,7 +4,7 @@ import dev.anvilcraft.lib.v2.multiblock.dynamic.controller.IController; import dev.anvilcraft.lib.v2.util.ShapeUtil; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.block.PropelPiston; +import dev.dubhe.anvilcraft.block.laser.PropelPistonBlock; import dev.dubhe.anvilcraft.block.multipart.MultiPartBlockEntity; import dev.dubhe.anvilcraft.block.multipart.SimpleMultiPartBlock; import dev.dubhe.anvilcraft.block.state.Cube323PartHalf; @@ -12,7 +12,7 @@ import dev.dubhe.anvilcraft.init.block.ModMultiblockDefinitions; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -31,7 +31,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class CelestialForgingAnvilBlock extends SimpleMultiPartBlock @@ -158,11 +158,11 @@ protected BlockState mirror(BlockState state, Mirror mirror) { @Override protected float getShadeBrightness(BlockState state, BlockGetter level, BlockPos pos) { - return 1.0f; + return 1.0F; } @Override - protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } @@ -174,10 +174,10 @@ protected void createBlockStateDefinition(StateDefinition.Builder BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { if (level.isClientSide()) { - return PropelPiston.createTickerHelper( + return PropelPistonBlock.createTickerHelper( type, ModBlockEntities.CELESTIAL_FORGING_ANVIL.get(), - (level1, blockPos, blockState, blockEntity) -> blockEntity.tick() + (_, _, _, be) -> be.tick() ); } return null; @@ -199,8 +199,8 @@ public Block getBlock() { } @Override - public ResourceLocation getDefinitionId() { - return ModMultiblockDefinitions.CELESTIAL_FORGING_ANVIL.location(); + public Identifier getDefinitionId() { + return ModMultiblockDefinitions.CELESTIAL_FORGING_ANVIL.identifier(); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/CelestialForgingAnvilInterfaceBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/CelestialForgingAnvilInterfaceBlock.java index d07faece83..e541bda8ee 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/CelestialForgingAnvilInterfaceBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/CelestialForgingAnvilInterfaceBlock.java @@ -16,7 +16,7 @@ import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public abstract class CelestialForgingAnvilInterfaceBlock extends HorizontalDirectionalBlock @@ -39,11 +39,11 @@ public CelestialForgingAnvilInterfaceBlock(Properties properties) { @Override protected float getShadeBrightness(BlockState state, BlockGetter level, BlockPos pos) { - return 1.0f; + return 1.0F; } @Override - protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/package-info.java index e6fdbda8f8..26564cf5df 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/interfaces/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.cfa.interfaces; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilAmplifierBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilAmplifierBlockItem.java index dd1dd7cea9..616067a343 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilAmplifierBlockItem.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilAmplifierBlockItem.java @@ -1,11 +1,11 @@ package dev.dubhe.anvilcraft.block.cfa.item; import dev.dubhe.anvilcraft.block.cfa.CelestialForgingAnvilBlock; -import dev.dubhe.anvilcraft.block.item.FlexibleMultiPartBlockItem; import dev.dubhe.anvilcraft.block.multipart.FlexibleMultiPartBlock; import dev.dubhe.anvilcraft.block.state.Cube323PartHalf; import dev.dubhe.anvilcraft.block.state.DirectionCube232PartHalf; import dev.dubhe.anvilcraft.init.block.ModBlocks; +import dev.dubhe.anvilcraft.item.block.FlexibleMultiPartBlockItem; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -15,12 +15,12 @@ import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; public class CelestialForgingAnvilAmplifierBlockItem - extends FlexibleMultiPartBlockItem { + extends FlexibleMultiPartBlockItem, Direction> { public CelestialForgingAnvilAmplifierBlockItem( - FlexibleMultiPartBlock block, + FlexibleMultiPartBlock, Direction> block, Properties properties ) { super(block, properties); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilInterfaceBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilInterfaceBlockItem.java index e6982be3a4..c97c6140c6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilInterfaceBlockItem.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/CelestialForgingAnvilInterfaceBlockItem.java @@ -17,7 +17,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/package-info.java index ed68af1ebc..0854621122 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/item/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.cfa.item; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/cfa/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/cfa/package-info.java index eacef08d44..6dc07103a4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/cfa/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/cfa/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.cfa; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FluidTankBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/container/FluidTankBlock.java similarity index 83% rename from src/main/java/dev/dubhe/anvilcraft/block/FluidTankBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/container/FluidTankBlock.java index d4ca7f6732..16c10e2051 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FluidTankBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/container/FluidTankBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.container; import com.mojang.serialization.MapCodec; import dev.anvilcraft.lib.v2.multiblock.dynamic.MultiblockState; @@ -9,10 +9,9 @@ import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModMultiblockDefinitions; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; 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.level.Level; @@ -22,7 +21,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class FluidTankBlock extends BaseEntityBlock implements HammerRotateBehavior, IHammerRemovable, IController { @@ -47,7 +46,7 @@ protected RenderShape getRenderShape(BlockState state) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -56,16 +55,16 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - InteractionResult result = super.useItemOn(stack, state, level, pos, player, hand, hitResult).result(); + InteractionResult result = super.useItemOn(stack, state, level, pos, player, hand, hitResult); if (result == InteractionResult.PASS) { if (level.getBlockEntity(pos) instanceof FluidTankBlockEntity tank) { if (tank.onPlayerUse(player, hand)) { - return ItemInteractionResult.sidedSuccess(level.isClientSide()); + return InteractionResult.SUCCESS; } } } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } @Override @@ -74,8 +73,8 @@ public Block getBlock() { } @Override - public ResourceLocation getDefinitionId() { - return ModMultiblockDefinitions.FLUID_TANK.location(); + public Identifier getDefinitionId() { + return ModMultiblockDefinitions.FLUID_TANK.identifier(); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/LargeFluidTankBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/container/LargeFluidTankBlock.java similarity index 85% rename from src/main/java/dev/dubhe/anvilcraft/block/LargeFluidTankBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/container/LargeFluidTankBlock.java index c49417cd01..d1357e40fe 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/LargeFluidTankBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/container/LargeFluidTankBlock.java @@ -1,9 +1,10 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.container; import dev.anvilcraft.lib.v2.multiblock.dynamic.MultiblockState; import dev.anvilcraft.lib.v2.multiblock.dynamic.controller.IController; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.entity.LargeFluidTankBlockEntity; +import dev.dubhe.anvilcraft.block.laser.PropelPistonBlock; import dev.dubhe.anvilcraft.block.multipart.MultiPartBlockEntity; import dev.dubhe.anvilcraft.block.multipart.SimpleMultiPartBlock; import dev.dubhe.anvilcraft.block.state.Cube3x3PartHalf; @@ -11,11 +12,10 @@ import dev.dubhe.anvilcraft.init.block.ModMultiblockDefinitions; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; 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.level.BlockGetter; @@ -29,9 +29,7 @@ import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; - -import static dev.dubhe.anvilcraft.block.PropelPiston.createTickerHelper; +import org.jspecify.annotations.Nullable; public class LargeFluidTankBlock extends SimpleMultiPartBlock @@ -78,7 +76,7 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { @Nullable @Override public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - return createTickerHelper( + return PropelPistonBlock.createTickerHelper( type, ModBlockEntities.LARGE_FLUID_TANK.get(), (level1, blockPos, blockState, blockEntity) -> blockEntity.tick() @@ -86,7 +84,7 @@ public BlockEntityTicker getTicker(Level level, Block } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -95,17 +93,17 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - InteractionResult result = super.useItemOn(stack, state, level, pos, player, hand, hitResult).result(); + InteractionResult result = super.useItemOn(stack, state, level, pos, player, hand, hitResult); if (result == InteractionResult.PASS) { BlockPos mainPartPos = getMainPartPos(pos, state); BlockEntity blockEntity = level.getBlockEntity(mainPartPos); if (blockEntity instanceof LargeFluidTankBlockEntity tank) { if (tank.onPlayerUse(player, hand)) { - return ItemInteractionResult.sidedSuccess(level.isClientSide()); + return InteractionResult.SUCCESS; } } } - return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + return InteractionResult.PASS; } @@ -115,7 +113,7 @@ protected float getShadeBrightness(BlockState state, BlockGetter level, BlockPos } @Override - protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } @@ -125,8 +123,8 @@ public Block getBlock() { } @Override - public ResourceLocation getDefinitionId() { - return ModMultiblockDefinitions.LARGE_FLUID_TANK.location(); + public Identifier getDefinitionId() { + return ModMultiblockDefinitions.LARGE_FLUID_TANK.identifier(); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ShulkerContainerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/container/ShulkerContainerBlock.java similarity index 98% rename from src/main/java/dev/dubhe/anvilcraft/block/ShulkerContainerBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/container/ShulkerContainerBlock.java index c666e5e11d..c847cc2cb8 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ShulkerContainerBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/container/ShulkerContainerBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.container; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -164,9 +164,9 @@ public void removePartsAndUpdate(Level level, BlockPos pos) { BlockPos fromPos = updatedPos.relative(direction); level.neighborShapeChanged( direction, - level.getBlockState(fromPos), - updatedPos, + updatedPos, fromPos, + level.getBlockState(fromPos), 3, 512 ); @@ -194,7 +194,7 @@ protected float getShadeBrightness(BlockState state, BlockGetter getter, BlockPo } @Override - protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } @@ -268,4 +268,4 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { protected static final VoxelShape TOP_SE = ShapeUtil.rotate(Direction.Axis.Y, 180, TOP_NW); protected static final VoxelShape TOP_NE = ShapeUtil.rotate(Direction.Axis.Y, 270, TOP_NW); // endregion -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/container/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/container/package-info.java new file mode 100644 index 0000000000..99606a3bfb --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/container/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.container; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/decoration/ReinforcedConcreteBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ReinforcedConcreteBlock.java new file mode 100644 index 0000000000..d0605aa395 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ReinforcedConcreteBlock.java @@ -0,0 +1,112 @@ +package dev.dubhe.anvilcraft.block.decoration; + +import dev.dubhe.anvilcraft.block.state.Color; +import dev.dubhe.anvilcraft.block.state.ReinforcedConcreteHalf; +import lombok.Getter; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.Level; +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.piston.PistonMovingBlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.EnumProperty; + +public class ReinforcedConcreteBlock extends Block { + public static final EnumProperty HALF = EnumProperty.create("half", ReinforcedConcreteHalf.class); + @Getter + private final Color color; + + public ReinforcedConcreteBlock(Properties properties, Color color) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(HALF, ReinforcedConcreteHalf.SINGLE)); + this.color = color; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(HALF); + } + + private boolean checkHalf(BlockState state, ReinforcedConcreteHalf half) { + return state.is(this) && state.getValue(HALF) == half; + } + + /** + * When piston finished a block movement, this block will receive an NC update where neighborPos is + * same as pos. So we cannot ignore the update when neighborPos.equals(pos). + * + * @param pos the position where block being updated + * @param fromPos the position where block update is spread from + * @return If the NC update should be ignored. + * @see PistonMovingBlockEntity#tick(Level, BlockPos, BlockState, PistonMovingBlockEntity) + */ + private static boolean shouldIgnoreUpdate(BlockPos pos, BlockPos fromPos) { + return pos.getY() == fromPos.getY() && (pos.getX() != fromPos.getX() || pos.getZ() != fromPos.getZ()); + } + + @Override + protected BlockState updateShape( + BlockState state, + LevelReader levelReader, + ScheduledTickAccess ticks, + BlockPos pos, + Direction directionToNeighbour, + BlockPos neighbourPos, + BlockState neighbourState, + RandomSource random + ) { + if (!(levelReader instanceof Level level)) { + return state; + } + if (level.isClientSide()) { + return state; + } + if (shouldIgnoreUpdate(pos, neighbourPos)) { + return state; + } + ReinforcedConcreteHalf half = state.getValue(HALF); + BlockState aboveState = level.getBlockState(pos.above()); + BlockState belowState = level.getBlockState(pos.below()); + switch (half) { + case TOP: + if (this.checkHalf(belowState, ReinforcedConcreteHalf.SINGLE)) { + level.setBlock(pos.below(), state.setValue(HALF, ReinforcedConcreteHalf.BOTTOM), 2); + } else if (!this.checkHalf(belowState, ReinforcedConcreteHalf.BOTTOM)) { + state = state.setValue(HALF, ReinforcedConcreteHalf.SINGLE); + } + break; + case BOTTOM: + if (this.checkHalf(aboveState, ReinforcedConcreteHalf.SINGLE)) { + level.setBlock(pos.above(), state.setValue(HALF, ReinforcedConcreteHalf.TOP), 2); + } else if (!this.checkHalf(aboveState, ReinforcedConcreteHalf.TOP)) { + state = state.setValue(HALF, ReinforcedConcreteHalf.SINGLE); + } + break; + case SINGLE: + if (neighbourPos.equals(pos.below()) && this.checkHalf(belowState, ReinforcedConcreteHalf.SINGLE)) { + state = state.setValue(HALF, ReinforcedConcreteHalf.TOP); + level.setBlock(pos.below(), state.setValue(HALF, ReinforcedConcreteHalf.BOTTOM), 2); + } else if (neighbourPos.equals(pos.above()) && this.checkHalf(aboveState, ReinforcedConcreteHalf.SINGLE)) { + state = state.setValue(HALF, ReinforcedConcreteHalf.BOTTOM); + level.setBlock(pos.above(), state.setValue(HALF, ReinforcedConcreteHalf.TOP), 2); + } + break; + default: + } + return state; + } + + @Override + public void tick( + BlockState state, + ServerLevel level, + BlockPos pos, + RandomSource random) { + super.tick(state, level, pos, random); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalBlock.java similarity index 89% rename from src/main/java/dev/dubhe/anvilcraft/block/EmberMetalBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalBlock.java index 805b82e425..f92fbb6191 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.ember; import dev.dubhe.anvilcraft.api.block.IEmberBlock; import lombok.Getter; @@ -33,7 +33,7 @@ public void randomTick( BlockPos pos, RandomSource random ) { - if (random.nextDouble() <= waterAbsorptionChance) { + if (random.nextDouble() <= this.waterAbsorptionChance) { tryAbsorbWater(level, pos); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalPillarBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalPillarBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/EmberMetalPillarBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalPillarBlock.java index 6233e85e80..9ef0c4cd64 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalPillarBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalPillarBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.ember; import dev.dubhe.anvilcraft.api.block.IEmberBlock; import lombok.Getter; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalSlabBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalSlabBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/EmberMetalSlabBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalSlabBlock.java index 8adae3c1a7..9b124575d4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalSlabBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalSlabBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.ember; import dev.dubhe.anvilcraft.api.block.IEmberBlock; import lombok.Getter; @@ -33,7 +33,7 @@ public void randomTick( RandomSource random ) { if (random.nextDouble() <= 0.1) { - level.playSound(null, pos, SoundEvents.LAVA_EXTINGUISH, SoundSource.BLOCKS, 1f, 1f); + level.playSound(null, pos, SoundEvents.LAVA_EXTINGUISH, SoundSource.BLOCKS, 1F, 1F); level.setBlock(pos, state.setValue(SlabBlock.WATERLOGGED, false), 2); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalStairBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalStairBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/EmberMetalStairBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalStairBlock.java index 43075e9fda..cad970554d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/EmberMetalStairBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/EmberMetalStairBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.ember; import dev.dubhe.anvilcraft.api.block.IEmberBlock; import lombok.Getter; @@ -34,7 +34,7 @@ public void randomTick( RandomSource random ) { if (random.nextDouble() <= 0.1) { - level.playSound(null, pos, SoundEvents.LAVA_EXTINGUISH, SoundSource.BLOCKS, 1f, 1f); + level.playSound(null, pos, SoundEvents.LAVA_EXTINGUISH, SoundSource.BLOCKS, 1F, 1F); level.setBlock(pos, state.setValue(SlabBlock.WATERLOGGED, false), 2); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/package-info.java new file mode 100644 index 0000000000..e666b5fd27 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/ember/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.decoration.ember; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalBlock.java similarity index 82% rename from src/main/java/dev/dubhe/anvilcraft/block/FrostMetalBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalBlock.java index e793efcf59..faf57584a5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.frost; import dev.dubhe.anvilcraft.api.block.IFrostBlock; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalPillarBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalPillarBlock.java similarity index 84% rename from src/main/java/dev/dubhe/anvilcraft/block/FrostMetalPillarBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalPillarBlock.java index 80ddff82f7..69514775a7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalPillarBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalPillarBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.frost; import dev.dubhe.anvilcraft.api.block.IFrostBlock; import net.minecraft.world.level.block.RotatedPillarBlock; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalSlabBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalSlabBlock.java similarity index 83% rename from src/main/java/dev/dubhe/anvilcraft/block/FrostMetalSlabBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalSlabBlock.java index d57c03771e..3f43333e88 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalSlabBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalSlabBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.frost; import dev.dubhe.anvilcraft.api.block.IFrostBlock; import net.minecraft.world.level.block.SlabBlock; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalStairBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalStairBlock.java similarity index 87% rename from src/main/java/dev/dubhe/anvilcraft/block/FrostMetalStairBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalStairBlock.java index e6d6b7e018..996af49fee 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FrostMetalStairBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/FrostMetalStairBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.frost; import dev.dubhe.anvilcraft.api.block.IFrostBlock; import net.minecraft.world.level.block.StairBlock; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/package-info.java new file mode 100644 index 0000000000..1ac8bbcdee --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/frost/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.decoration.frost; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronBeamBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronBeamBlock.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/block/HeavyIronBeamBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronBeamBlock.java index 602794a0a1..7279b874c4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronBeamBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronBeamBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.heavyiron; import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -17,7 +17,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class HeavyIronBeamBlock extends Block implements IHammerRemovable, HammerRotateBehavior { @@ -52,13 +52,11 @@ public VoxelShape getShape( BlockPos blockPos, CollisionContext collisionContext ) { - return switch (blockState.getValue(AXIS)) { - case X: - yield AABB_X; - case Z: - default: - yield AABB_Z; - }; + if (blockState.getValue(AXIS) == Direction.Axis.X) { + return AABB_X; + } else { + return AABB_Z; + } } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronDoorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronDoorBlock.java similarity index 87% rename from src/main/java/dev/dubhe/anvilcraft/block/HeavyIronDoorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronDoorBlock.java index 8d639cfa96..07c60c4c33 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronDoorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronDoorBlock.java @@ -1,13 +1,12 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.heavyiron; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; -import dev.dubhe.anvilcraft.item.AnvilHammerItem; +import dev.dubhe.anvilcraft.item.tool.AnvilHammerItem; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.sounds.SoundSource; 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.context.BlockPlaceContext; @@ -19,8 +18,9 @@ import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class HeavyIronDoorBlock extends DoorBlock implements IHammerChangeable { public HeavyIronDoorBlock(Properties properties) { @@ -31,7 +31,7 @@ public HeavyIronDoorBlock(Properties properties) { public @Nullable BlockState getStateForPlacement(BlockPlaceContext context) { BlockPos blockpos = context.getClickedPos(); Level level = context.getLevel(); - if (blockpos.getY() < level.getMaxBuildHeight() - 1 && level.getBlockState(blockpos.above()).canBeReplaced(context)) { + if (blockpos.getY() < level.getMaxY() - 1 && level.getBlockState(blockpos.above()).canBeReplaced(context)) { boolean flag = level.getBestNeighborSignal(blockpos) >= 15 || level.getBestNeighborSignal(blockpos.above()) >= 15; return this.defaultBlockState() @@ -46,7 +46,7 @@ public HeavyIronDoorBlock(Properties properties) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -67,9 +67,9 @@ protected ItemInteractionResult useItemOn( level.getRandom().nextFloat() * 0.1F + 0.9F ); level.gameEvent(player, this.isOpen(state) ? GameEvent.BLOCK_OPEN : GameEvent.BLOCK_CLOSE, pos); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } - return ItemInteractionResult.FAIL; + return InteractionResult.FAIL; } @Override @@ -78,7 +78,14 @@ protected InteractionResult useWithoutItem(BlockState state, Level level, BlockP } @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { boolean flag = level.getBestNeighborSignal(pos) >= 15 || level.getBestNeighborSignal(pos.relative(state.getValue(HALF) == DoubleBlockHalf.LOWER ? Direction.UP diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronPlateBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronPlateBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/HeavyIronPlateBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronPlateBlock.java index 6e7d220a10..6af7863f92 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronPlateBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronPlateBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.heavyiron; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import net.minecraft.core.BlockPos; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronTrapdoorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronTrapdoorBlock.java similarity index 84% rename from src/main/java/dev/dubhe/anvilcraft/block/HeavyIronTrapdoorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronTrapdoorBlock.java index 86e71f3da6..c25dd3eaa2 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronTrapdoorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronTrapdoorBlock.java @@ -1,11 +1,10 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.heavyiron; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; -import dev.dubhe.anvilcraft.item.AnvilHammerItem; +import dev.dubhe.anvilcraft.item.tool.AnvilHammerItem; import net.minecraft.core.BlockPos; 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.context.BlockPlaceContext; @@ -16,8 +15,9 @@ import net.minecraft.world.level.block.state.properties.BlockSetType; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class HeavyIronTrapdoorBlock extends TrapDoorBlock implements IHammerChangeable { public HeavyIronTrapdoorBlock(Properties properties) { @@ -38,7 +38,7 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -50,13 +50,20 @@ protected ItemInteractionResult useItemOn( if (stack.getItem() instanceof AnvilHammerItem) { this.toggle(state, level, pos, player); this.playSound(null, level, pos, state.getValue(OPEN)); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } - return ItemInteractionResult.FAIL; + return InteractionResult.FAIL; } @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { boolean flag = level.getBestNeighborSignal(pos) >= 15; if (flag != state.getValue(POWERED)) { if (state.getValue(OPEN) != flag) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronWallBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronWallBlock.java similarity index 88% rename from src/main/java/dev/dubhe/anvilcraft/block/HeavyIronWallBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronWallBlock.java index 6abea1e591..ff7af609fa 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeavyIronWallBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/HeavyIronWallBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.decoration.heavyiron; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import net.minecraft.world.level.block.WallBlock; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/package-info.java new file mode 100644 index 0000000000..8904018481 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/heavyiron/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.decoration.heavyiron; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/decoration/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/decoration/package-info.java new file mode 100644 index 0000000000..8747d41af4 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/decoration/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.decoration; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/AccelerationRingBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/AccelerationRingBlockEntity.java index 626a90df29..4ce561c17b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/AccelerationRingBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/AccelerationRingBlockEntity.java @@ -4,12 +4,12 @@ import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerComponentType; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.AccelerationRingBlock; -import dev.dubhe.anvilcraft.block.DeflectionRingBlock; -import dev.dubhe.anvilcraft.block.GiantAnvilBlock; +import dev.dubhe.anvilcraft.block.power.ring.AccelerationRingBlock; +import dev.dubhe.anvilcraft.block.power.ring.DeflectionRingBlock; import dev.dubhe.anvilcraft.block.state.Cube3x3PartHalf; import dev.dubhe.anvilcraft.block.state.DirectionCube3x3PartHalf; import dev.dubhe.anvilcraft.block.state.GiantAnvilCube; +import dev.dubhe.anvilcraft.block.workstation.GiantAnvilBlock; import dev.dubhe.anvilcraft.entity.FallingGiantAnvilEntity; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlockTags; @@ -20,7 +20,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.tags.BlockTags; -import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.item.FallingBlockEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -30,8 +29,8 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; -import org.jetbrains.annotations.Nullable; import org.joml.Vector2d; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.HashMap; @@ -66,7 +65,7 @@ public static Iterable getAllBlocks(Level level) { } } - public static AABB getAABB(BlockPos pos) { + public static @Nullable AABB getAABB(BlockPos pos) { return ACCELERATION_AABB_MAP.get(pos); } @@ -132,10 +131,12 @@ public void tick() { BlockState state = getBlockState(); if (this.level.isClientSide()) { if (!state.getValue(AccelerationRingBlock.HALF).equals(DirectionCube3x3PartHalf.MID_CENTER)) return; - if (isWork()) { - addSelfToMap(); - accelerate(); - } else removeSelfFromMap(); + if (this.isWork()) { + this.addSelfToMap(); + this.accelerate(); + } else { + this.removeSelfFromMap(); + } } if (this.grid == null) return; if (!state.getValue(AccelerationRingBlock.HALF).equals(DirectionCube3x3PartHalf.MID_CENTER)) return; @@ -145,15 +146,15 @@ public void tick() { } else if (!this.grid.isWorking() && !state.getValue(AccelerationRingBlock.OVERLOAD)) { block.updateState(this.level, getBlockPos(), AccelerationRingBlock.OVERLOAD, true, 3); } - if (!isWork()) { - removeSelfFromMap(); + if (!this.isWork()) { + this.removeSelfFromMap(); return; } - addSelfToMap(); + this.addSelfToMap(); if (state.getValue(AccelerationRingBlock.FACING).equals(Direction.UP)) { - attractGianAnvil(); + this.attractGianAnvil(); } - accelerate(); + this.accelerate(); } public void accelerate() { @@ -209,7 +210,6 @@ public void accelerate() { } } - @SuppressWarnings("DuplicatedCode") public void attractGianAnvil() { assert this.level != null; if ( @@ -291,7 +291,7 @@ public void attractGianAnvil() { .setValue(GiantAnvilBlock.CUBE, part.equals(Cube3x3PartHalf.MID_CENTER) ? GiantAnvilCube.CENTER : GiantAnvilCube.CORNER) ); } - fallingGiantAnvilEntity.ifPresent(Entity::kill); + fallingGiantAnvilEntity.ifPresent(FallingGiantAnvilEntity::discard); } @Override @@ -302,6 +302,6 @@ public int getInputPower() { @Override public void setRemoved() { super.setRemoved(); - removeSelfFromMap(); + this.removeSelfFromMap(); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ActivatorSlidingRailBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ActivatorSlidingRailBlockEntity.java index 6c13869b0d..f1d86da78f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ActivatorSlidingRailBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ActivatorSlidingRailBlockEntity.java @@ -7,11 +7,13 @@ import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.util.TriState; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.common.util.TriState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import org.jspecify.annotations.Nullable; @Getter public class ActivatorSlidingRailBlockEntity extends BlockEntity { @@ -37,15 +39,15 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registries) { } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putInt("ShouldPower", this.shouldPower.ordinal()); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("ShouldPower", this.shouldPower.ordinal()); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.shouldPower = TriState.values()[tag.getInt("ShouldPower")]; + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.shouldPower = TriState.values()[input.getIntOr("ShouldPower", 0)]; } public boolean shouldPower() { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ActiveSilencerBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ActiveSilencerBlockEntity.java index e089b29eb2..325b1d8dca 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ActiveSilencerBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ActiveSilencerBlockEntity.java @@ -7,7 +7,7 @@ import dev.dubhe.anvilcraft.api.sound.ISoundEventListener; import dev.dubhe.anvilcraft.api.sound.SoundHelper; import dev.dubhe.anvilcraft.api.tooltip.providers.IHasAffectRange; -import dev.dubhe.anvilcraft.block.ActiveSilencerBlock; +import dev.dubhe.anvilcraft.block.utility.ActiveSilencerBlock; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.inventory.ActiveSilencerMenu; import dev.dubhe.anvilcraft.network.SilencerSyncPacket; @@ -15,13 +15,13 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtOps; -import net.minecraft.nbt.Tag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.StringTag; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; -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.world.MenuProvider; @@ -29,15 +29,17 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.Level; +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.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.neoforged.api.distmarker.Dist; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; -import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; @@ -45,11 +47,11 @@ public class ActiveSilencerBlockEntity extends BlockEntity implements MenuProvider, ISoundEventListener, IDiskCloneable, IHasAffectRange { - public static final Codec> CODEC = - ResourceLocation.CODEC.listOf().fieldOf("mutedSound").codec(); + public static final Codec> CODEC = + Identifier.CODEC.listOf().fieldOf("mutedSound").codec(); @Getter - private final Set mutedSound = new CopyOnWriteArraySet<>(); + private final Set muting = new CopyOnWriteArraySet<>(); private final AABB range; @@ -58,22 +60,22 @@ public class ActiveSilencerBlockEntity */ public ActiveSilencerBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); - range = AABB.ofSize(Vec3.atCenterOf(pos), 31, 31, 31); + this.range = AABB.ofSize(Vec3.atCenterOf(pos), 31, 31, 31); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - Tag t = CODEC.encodeStart(NbtOps.INSTANCE, new ArrayList<>(mutedSound)).getOrThrow(); - tag.put("MutedSound", t); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + ValueOutput.TypedOutputList muted = output.list("MutedSounds", Identifier.CODEC); + for (Identifier sound : this.muting) { + muted.add(sound); + } } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - mutedSound.addAll(CODEC.decode(NbtOps.INSTANCE, tag.get("MutedSound")) - .getOrThrow() - .getFirst()); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + input.listOrEmpty("MutedSounds", Identifier.CODEC).forEach(this.muting::add); } @Nullable @@ -85,8 +87,11 @@ public Packet getUpdatePacket() { @Override public CompoundTag getUpdateTag(HolderLookup.Provider provider) { CompoundTag tag = new CompoundTag(); - Tag t = CODEC.encodeStart(NbtOps.INSTANCE, new ArrayList<>(mutedSound)).getOrThrow(); - tag.put("MutedSound", t); + ListTag muted = new ListTag(); + for (Identifier identifier : this.muting) { + muted.add(StringTag.valueOf(identifier.toShortString())); + } + tag.put("MutedSounds", muted); return tag; } @@ -117,53 +122,53 @@ public AbstractContainerMenu createMenu(int i, Inventory inventory, Player playe /** * 添加声音 */ - public void addSound(ResourceLocation soundId) { - mutedSound.add(soundId); + public void addSound(Identifier soundId) { + this.muting.add(soundId); this.setChanged(); } - public void removeSound(ResourceLocation soundId) { - mutedSound.remove(soundId); + public void removeSound(Identifier soundId) { + this.muting.remove(soundId); this.setChanged(); } @Override - public boolean shouldMute(ResourceLocation sound, Vec3 pos) { + public boolean shouldMute(Identifier sound, Vec3 pos) { if (getBlockState().getValue(ActiveSilencerBlock.POWERED)) return true; - boolean inRange = range.contains(pos); - boolean inList = mutedSound.contains(sound); + boolean inRange = this.range.contains(pos); + boolean inList = this.muting.contains(sound); return inRange && inList; } - public void sync(List sounds) { - this.mutedSound.clear(); - this.mutedSound.addAll(sounds); + public void sync(List sounds) { + this.muting.clear(); + this.muting.addAll(sounds); } - public void sync(Player player, List sounds) { + public void sync(Player player, List sounds) { this.sync(sounds); if (!(this.getLevel() instanceof ServerLevel serverLevel) || !(player instanceof ServerPlayer serverPlayer)) return; NetworkUtil.sendToAllPlayersInDimensionExcluded( serverLevel, serverPlayer, - new SilencerSyncPacket(this.getBlockPos(), List.copyOf(this.mutedSound)) + new SilencerSyncPacket(this.getBlockPos(), List.copyOf(this.muting)) ); } @Override - public void storeDiskData(CompoundTag tag) { - Tag t = CODEC.encodeStart(NbtOps.INSTANCE, new ArrayList<>(mutedSound)).getOrThrow(); - tag.put("MutedSound", t); + public void storeDiskData(ValueOutput output) { + ValueOutput.TypedOutputList muted = output.list("MutedSounds", Identifier.CODEC); + for (Identifier identifier : this.muting) { + muted.add(identifier); + } } @Override - public void applyDiskData(CompoundTag data) { - mutedSound.addAll(CODEC.decode(NbtOps.INSTANCE, data.get("MutedSound")) - .getOrThrow() - .getFirst()); + public void applyDiskData(ValueInput input) { + input.listOrEmpty("MutedSounds", Identifier.CODEC).forEach(this.muting::add); this.setChanged(); - if (level != null && !level.isClientSide) { - level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); + if (this.level != null && !this.level.isClientSide()) { + this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), Block.UPDATE_ALL); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/AdvancedComparatorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/AdvancedComparatorBlockEntity.java index dbcf67a2e3..76d2e93296 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/AdvancedComparatorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/AdvancedComparatorBlockEntity.java @@ -2,7 +2,7 @@ import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.item.IDiskCloneable; -import dev.dubhe.anvilcraft.block.AdvancedComparatorBlock; +import dev.dubhe.anvilcraft.block.utility.redstone.AdvancedComparatorBlock; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -22,13 +22,13 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import org.jspecify.annotations.Nullable; import java.util.Optional; @@ -62,30 +62,23 @@ public Packet getUpdatePacket() { @Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { - CompoundTag compoundTag = new CompoundTag(); - this.saveAdditional(compoundTag, registries); - return compoundTag; - } - - @Override - public void saveToItem(ItemStack stack, HolderLookup.Provider registries) { CompoundTag data = this.constructDataNbt(); - BlockItem.setBlockEntityData(stack, this.getType(), data); - stack.applyComponents(this.collectComponents()); + data.putInt("InputSignal", this.inputtingSignal); + return data; } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); CompoundTag data = this.constructDataNbt(); data.putInt("InputSignal", this.inputtingSignal); - tag.put("ExtraData", data); + output.store("ExtraData", CompoundTag.CODEC, data); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - CompoundTag data = tag.getCompound("ExtraData"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + CompoundTag data = input.read("ExtraData", CompoundTag.CODEC).orElse(new CompoundTag()); this.readDataNbt(data); if ((this.compareMode == Mode.HYSTERESIS && this.inputtingSignal >= this.highLimit) || (this.compareMode == Mode.WINDOW && this.inputtingSignal <= this.highLimit)) { @@ -107,23 +100,23 @@ public CompoundTag constructDataNbt() { } public AdvancedComparatorBlockEntity readDataNbt(CompoundTag data) { - this.compareMode = Mode.fromIndex(data.getByte("CompareMode")); - this.outputInvert = data.getBoolean("OutputMode"); - this.redstoneControl = data.getBoolean("RedstoneControl"); - this.highLimit = data.getInt("HighLimit"); - this.lowLimit = data.getInt("LowLimit"); - this.inputtingSignal = data.getInt("InputSignal"); + this.compareMode = Mode.fromIndex(data.getByteOr("CompareMode", (byte) 0)); + this.outputInvert = data.getBooleanOr("OutputMode", false); + this.redstoneControl = data.getBooleanOr("RedstoneControl", false); + this.highLimit = data.getIntOr("HighLimit", 0); + this.lowLimit = data.getIntOr("LowLimit", 0); + this.inputtingSignal = data.getIntOr("InputSignal", 0); return this; } @Override - public void storeDiskData(CompoundTag tag) { - tag.put("Data", this.constructDataNbt()); + public void storeDiskData(ValueOutput output) { + output.store("Data", CompoundTag.CODEC, this.constructDataNbt()); } @Override - public void applyDiskData(CompoundTag data) { - this.readDataNbt(data.getCompound("Data")); + public void applyDiskData(ValueInput input) { + this.readDataNbt(input.read("Data", CompoundTag.CODEC).orElse(new CompoundTag())); if (this.getLevel() == null) return; Util.castSafely(this.getBlockState().getBlock(), AdvancedComparatorBlock.class) .ifPresent(block -> block.update(this.getLevel(), this.getBlockPos(), this.getBlockState())); @@ -146,7 +139,7 @@ public void updateInputtingSignal(Level level, BlockPos pos, BlockState state) { public void onLoad() { super.onLoad(); if (this.level == null) return; - updateInputtingSignal(this.level, this.getBlockPos(), this.getBlockState()); + this.updateInputtingSignal(this.level, this.getBlockPos(), this.getBlockState()); } @Override @@ -157,20 +150,20 @@ public Component getDisplayName() { @Override public @Nullable AbstractContainerMenu createMenu(int containerId, Inventory inventory, Player player) { if (player.isSpectator()) return null; - if (player.level().getBlockEntity(getBlockPos()) instanceof AdvancedComparatorBlockEntity blockEntity) { + if (player.level().getBlockEntity(this.getBlockPos()) instanceof AdvancedComparatorBlockEntity blockEntity) { return new AdvancedComparatorMenu(ModMenuTypes.ADVANCED_COMPARATOR.get(), containerId, inventory, blockEntity); } return null; } public CompoundTag exportMoveData() { - return constructDataNbt(); + return this.constructDataNbt(); } public void applyMoveData(Level level, BlockPos pos, BlockState state, CompoundTag nbt) { - readDataNbt(nbt); + this.readDataNbt(nbt); ((AdvancedComparatorBlock) state.getBlock()).update(level, pos, state); - setChanged(); + this.setChanged(); } public enum State { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseChuteBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseChuteBlockEntity.java index c12d5094ad..5548a509d2 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseChuteBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseChuteBlockEntity.java @@ -3,7 +3,7 @@ import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.item.IDiskCloneable; import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; import lombok.Getter; import lombok.Setter; @@ -11,23 +11,29 @@ import net.minecraft.core.Direction; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.Connection; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.util.ProblemReporter; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; +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.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +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.AABB; import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.items.IItemHandler; -import net.neoforged.neoforge.items.ItemHandlerHelper; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Objects; @@ -35,14 +41,14 @@ @Getter public abstract class BaseChuteBlockEntity extends BaseMachineBlockEntity - implements IFilterBlockEntity, IDiskCloneable, IItemHandlerHolder { + implements IFilterBlockEntity, IDiskCloneable, IItemResourceHandlerHolder { private final FilteredItemStackHandler itemHandler = new FilteredItemStackHandler(9) { @Override - public void onContentsChanged(int slot) { - assert level != null; - if (level.isClientSide) return; - setChanged(); + protected void onContentsChanged(int index, ItemStack previousContents) { + assert BaseChuteBlockEntity.this.level != null; + if (BaseChuteBlockEntity.this.level.isClientSide()) return; + BaseChuteBlockEntity.this.setChanged(); } }; @Setter @@ -57,26 +63,26 @@ protected BaseChuteBlockEntity(BlockEntityType type, Bloc public Direction getDirection() { if (this.level == null) return Direction.UP; BlockState state = this.level.getBlockState(this.getBlockPos()); - if (validateBlockState(state)) return state.getValue(getFacingProperty()); + if (this.validateBlockState(state)) return state.getValue(this.getFacingProperty()); return Direction.UP; } @Override public void setDirection(Direction direction) { - if (shouldSkipDirection(direction)) return; + if (this.shouldSkipDirection(direction)) return; BlockPos pos = this.getBlockPos(); Level level = this.getLevel(); if (null == level) return; BlockState state = level.getBlockState(pos); - if (!validateBlockState(state)) return; - level.setBlockAndUpdate(pos, state.setValue(getFacingProperty(), direction)); + if (!this.validateBlockState(state)) return; + level.setBlockAndUpdate(pos, state.setValue(this.getFacingProperty(), direction)); } protected abstract boolean shouldSkipDirection(Direction direction); protected abstract boolean validateBlockState(BlockState state); - protected abstract DirectionProperty getFacingProperty(); + protected abstract EnumProperty getFacingProperty(); protected abstract Direction getOutputDirection(); @@ -86,7 +92,7 @@ public void setDirection(Direction direction) { @Override public FilteredItemStackHandler getFilteredItemStackHandler() { - return itemHandler; + return this.itemHandler; } @Override @@ -97,128 +103,130 @@ public FilteredItemStackHandler getFilteredItemStackHandler() { public abstract AbstractContainerMenu createMenu(int i, Inventory inventory, Player player); @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putInt("Cooldown", cooldown); - tag.put("Inventory", itemHandler.serializeNBT(provider)); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("Cooldown", this.cooldown); + this.itemHandler.serialize(output.child("Inventory")); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - cooldown = tag.getInt("Cooldown"); - itemHandler.deserializeNBT(provider, tag.getCompound("Inventory")); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.cooldown = input.getIntOr("Cooldown", 0); + this.itemHandler.deserialize(input.childOrEmpty("Inventory")); } /** * 溜槽 tick */ public void tick() { - if (level == null) return; - if (cooldown > 0) cooldown--; - tickedGameTime = level.getGameTime(); + if (this.level == null) return; + if (this.cooldown > 0) this.cooldown--; + this.tickedGameTime = this.level.getGameTime(); boolean resetCD = false; - if (cooldown <= 0) { - if (isEnabled()) { - BlockPos targetPos = getBlockPos().relative(getOutputDirection()); - // 尝试向朝向容器输出 - List targetList = ItemHandlerUtil.getTargetItemHandlerList( - targetPos, - getOutputDirection().getOpposite(), - level + if (this.cooldown > 0) { + this.level.updateNeighbourForOutputSignal(this.getBlockPos(), this.getBlockState().getBlock()); + return; + } + if (!this.isEnabled()) { + this.level.updateNeighbourForOutputSignal(this.getBlockPos(), this.getBlockState().getBlock()); + return; + } + BlockPos targetPos = this.getBlockPos().relative(this.getOutputDirection()); + // 尝试向朝向容器输出 + List> targetList = ItemHandlerUtil.getTargetItemHandlerList( + targetPos, + this.getOutputDirection().getOpposite(), + this.level + ); + if (targetList != null && !targetList.isEmpty()) { + for (ResourceHandler target : targetList) { + BlockEntity targetBE = this.level.getBlockEntity(targetPos); + boolean setChuteCD = targetBE != null && this.isTargetEmpty(targetBE); + boolean success = ItemHandlerUtil.exportToTarget(this.getItemHandler(), 64, (_, _) -> true, target); + if (success) { + // 特判溜槽cd7gt + if (setChuteCD) this.setChuteCD(targetBE); + resetCD = true; + break; + } + } + } else { + Vec3 center = this.getBlockPos().relative(this.getOutputDirection()).getCenter(); + AABB aabb = new AABB(center.add(-0.125, -0.125, -0.125), center.add(0.125, 0.125, 0.125)); + if (Objects.requireNonNull(this.getLevel()).noCollision(aabb)) { + List itemEntities = this.getLevel().getEntitiesOfClass( + ItemEntity.class, + new AABB(this.getBlockPos().relative(this.getOutputDirection())), + itemEntity -> !itemEntity.getItem().isEmpty() ); - if (targetList != null && !targetList.isEmpty()) { - for (IItemHandler target : targetList) { - BlockEntity targetBE = level.getBlockEntity(targetPos); - boolean setChuteCD = targetBE != null && isTargetEmpty(targetBE); - boolean success = ItemHandlerUtil.exportToTarget(getItemHandler(), 64, stack -> true, target); - if (success) { - // 特判溜槽cd7gt - if (setChuteCD) setChuteCD(targetBE); - resetCD = true; - break; - } - } - } else { - Vec3 center = getBlockPos().relative(getOutputDirection()).getCenter(); - AABB aabb = new AABB(center.add(-0.125, -0.125, -0.125), center.add(0.125, 0.125, 0.125)); - if (Objects.requireNonNull(getLevel()).noCollision(aabb)) { - List itemEntities = getLevel() - .getEntitiesOfClass( - ItemEntity.class, - new AABB(getBlockPos().relative(getOutputDirection())), - itemEntity -> !itemEntity.getItem().isEmpty()); - for (int i = 0; i < this.itemHandler.getSlots(); i++) { - ItemStack stack = this.itemHandler.getStackInSlot(i); - if (!stack.isEmpty()) { - int slotLimit = this.itemHandler.getSlotLimit(i); - int sameItemCount = 0; - for (ItemEntity entity : itemEntities) { - if (entity.getItem().getItem() == stack.getItem()) { - sameItemCount += entity.getItem().getCount(); - } - } - if (sameItemCount < slotLimit) { - ItemStack droppedItemStack = stack.copy(); - int droppedItemCount = - Math.min(stack.getCount(), slotLimit - sameItemCount); - droppedItemStack.setCount(droppedItemCount); - stack.setCount(stack.getCount() - droppedItemCount); - if (stack.getCount() == 0) stack = ItemStack.EMPTY; - ItemEntity itemEntity = new ItemEntity( - getLevel(), - center.x, - center.y, - center.z, - droppedItemStack, - 0, - 0, - 0 - ); - applySpeed(itemEntity, getOutputDirection()); - itemEntity.setDefaultPickUpDelay(); - getLevel().addFreshEntity(itemEntity); - this.itemHandler.setStackInSlot(i, stack); - resetCD = true; - break; - } - } - } + for (int i = 0; i < this.itemHandler.size(); i++) { + ItemResource resource = this.itemHandler.getResource(i); + if (resource.isEmpty()) continue; + int slotLimit = this.itemHandler.getSlotLimit(i); + int sameItemCount = 0; + for (ItemEntity entity : itemEntities) { + if (entity.getItem().getItem() != resource.getItem()) continue; + sameItemCount += entity.getItem().getCount(); } - - } - // 尝试从上方容器输入 - if (!this.inventoryFull()) { - IItemHandler source = ItemHandlerUtil.getSourceItemHandler( - getBlockPos().relative(getInputDirection()), - getInputDirection().getOpposite(), - level + if (sameItemCount >= slotLimit) continue; + int accessible = this.itemHandler.getAmountAsInt(i); + int dropping = Math.min(accessible, slotLimit - sameItemCount); + ItemStack remaining = resource.toStack(dropping); + if (resource.isEmpty()) remaining = ItemStack.EMPTY; + ItemEntity itemEntity = new ItemEntity( + this.getLevel(), + center.x, + center.y, + center.z, + remaining, + 0, + 0, + 0 ); - if (source != null) { - resetCD |= ItemHandlerUtil.importFromTarget(getItemHandler(), 64, stack -> true, source); - } else { - List itemEntities = Objects.requireNonNull(getLevel()) - .getEntitiesOfClass( - ItemEntity.class, - new AABB(getBlockPos().relative(getInputDirection())), - itemEntity -> !itemEntity.getItem().isEmpty()); - for (ItemEntity itemEntity : itemEntities) { - ItemStack itemStack = itemEntity.getItem(); - ItemStack remaining = - ItemHandlerHelper.insertItem(this.itemHandler, itemStack, true); - if (remaining.getCount() == itemStack.getCount()) continue; - ItemHandlerHelper.insertItem(this.itemHandler, itemEntity.getItem(), false); - itemEntity.setItem(remaining); - resetCD = true; - } - } + this.applySpeed(itemEntity, this.getOutputDirection()); + itemEntity.setDefaultPickUpDelay(); + this.getLevel().addFreshEntity(itemEntity); + this.itemHandler.set(i, resource, accessible - dropping); + resetCD = true; + break; } - } - } - level.updateNeighbourForOutputSignal(getBlockPos(), getBlockState().getBlock()); - if (resetCD) cooldown = AnvilCraft.CONFIG.chuteMaxCooldown; + // 尝试从上方容器输入 + if (this.inventoryFull()) { + this.level.updateNeighbourForOutputSignal(getBlockPos(), getBlockState().getBlock()); + if (resetCD) this.cooldown = AnvilCraft.CONFIG.chuteMaxCooldown; + return; + } + ResourceHandler source = ItemHandlerUtil.getSourceItemHandler( + this.getBlockPos().relative(this.getInputDirection()), + this.getInputDirection().getOpposite(), + this.level + ); + if (source != null) { + resetCD |= ItemHandlerUtil.importFromTarget(this.getItemHandler(), 64, (_, _) -> true, source); + } else { + List itemEntities = Objects.requireNonNull(this.getLevel()).getEntitiesOfClass( + ItemEntity.class, + new AABB(this.getBlockPos().relative(this.getInputDirection())), + itemEntity -> !itemEntity.getItem().isEmpty() + ); + for (ItemEntity itemEntity : itemEntities) { + ItemStack itemStack = itemEntity.getItem(); + ItemStack inserted = ItemHandlerUtil.insertItem(this.itemHandler, itemStack, true); + if (inserted.isEmpty()) continue; + ItemHandlerUtil.insertItem(this.itemHandler, itemEntity.getItem(), false); + if (inserted.count() == itemStack.count()) { + itemEntity.discard(); + } else { + itemEntity.setItem(inserted.copyWithCount(itemStack.count() - inserted.count())); + } + resetCD = true; + } + } + this.level.updateNeighbourForOutputSignal(getBlockPos(), getBlockState().getBlock()); + if (resetCD) this.cooldown = AnvilCraft.CONFIG.chuteMaxCooldown; } private boolean isTargetEmpty(BlockEntity blockEntity) { @@ -251,17 +259,15 @@ private void setChuteCD(BlockEntity targetBE) { */ public int getRedstoneSignal() { int strength = 0; - for (int index = 0; index < itemHandler.getSlots(); index++) { - ItemStack itemStack = itemHandler.getStackInSlot(index); + for (int index = 0; index < this.itemHandler.size(); index++) { + ItemResource resource = this.itemHandler.getResource(index); // 槽位为未设置过滤的已禁用槽位 - if (itemHandler.isSlotDisabled(index) && !itemHandler.isFilterEnabled()) { + if (this.itemHandler.isSlotDisabled(index) && !this.itemHandler.isFilterEnabled()) { strength++; continue; } // 槽位上没有物品 - if (itemStack.isEmpty()) { - continue; - } + if (resource.isEmpty()) continue; strength++; } return strength; @@ -272,30 +278,30 @@ protected void applySpeed(ItemEntity itemEntity, Direction direction) { } @Override - public void storeDiskData(CompoundTag tag) { - tag.put("Filtering", itemHandler.serializeFiltering()); + public void storeDiskData(ValueOutput output) { + this.itemHandler.serializeFiltering(output.child("Filtering")); } @Override - public void applyDiskData(CompoundTag data) { - itemHandler.deserializeFiltering(data.getCompound("Filtering")); + public void applyDiskData(ValueInput input) { + this.itemHandler.deserializeFiltering(input.childOrEmpty("Filtering")); this.setChanged(); - if (level != null && !level.isClientSide) { - level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); + if (this.level != null && !this.level.isClientSide()) { + this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), Block.UPDATE_ALL); } } public boolean isEmpty() { - for (int i = 0; i < itemHandler.getSlots(); i++) { - if (!itemHandler.getStackInSlot(i).isEmpty()) return false; + for (int i = 0; i < this.itemHandler.size(); i++) { + if (!this.itemHandler.getResource(i).isEmpty()) return false; } return true; } private boolean inventoryFull() { - for (int i = 0; i < itemHandler.getSlots(); i++) { - ItemStack itemstack = itemHandler.getStackInSlot(i); - if (itemstack.isEmpty() || itemstack.getCount() != itemstack.getMaxStackSize()) return false; + for (int i = 0; i < this.itemHandler.size(); i++) { + ItemResource resource = this.itemHandler.getResource(i); + if (resource.isEmpty() || this.itemHandler.getAmountAsInt(i) < resource.getMaxStackSize()) return false; } return true; } @@ -304,10 +310,10 @@ private boolean inventoryFull() { * 获取更新标签 (由服务端调用,决定发给客户端什么数据) */ @Override - public CompoundTag getUpdateTag(HolderLookup.Provider provider) { - CompoundTag tag = new CompoundTag(); - this.saveAdditional(tag, provider); - return tag; + public CompoundTag getUpdateTag(HolderLookup.Provider registries) { + TagValueOutput output = TagValueOutput.createWithContext(new ProblemReporter.Collector(this.problemPath()), registries); + this.saveAdditional(output); + return output.buildResult(); } /** @@ -319,16 +325,13 @@ public ClientboundBlockEntityDataPacket getUpdatePacket() { return ClientboundBlockEntityDataPacket.create(this); } - /** - * 客户端接收数据包 (由客户端调用) - * 收到包 -> 读取NBT -> 覆盖本地数据 - */ @Override - public void onDataPacket(net.minecraft.network.Connection net, - ClientboundBlockEntityDataPacket pkt, - HolderLookup.Provider lookupProvider - ) { - CompoundTag tag = pkt.getTag(); - this.loadAdditional(tag, lookupProvider); + public void onDataPacket(Connection net, ValueInput input) { + this.loadAdditional(input); + } + + @Override + public void preRemoveSideEffects(BlockPos pos, BlockState state) { + ItemHandlerUtil.dropAllToPos(this.getItemHandler(), this.level, this.getBlockPos().getCenter()); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseLaserBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseLaserBlockEntity.java index 7cdf25b5a7..111ecd4ece 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseLaserBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseLaserBlockEntity.java @@ -1,8 +1,9 @@ package dev.dubhe.anvilcraft.block.entity; +import dev.anvilcraft.lib.v2.rendering.cachedber.pipeline.CachedBlockEntityRenderingPipeline; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.heat.HeaterManager; -import dev.dubhe.anvilcraft.api.rendering.CacheableBERenderingPipeline; +import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; import dev.dubhe.anvilcraft.init.ModHeaterInfos; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.init.entity.ModDamageTypes; @@ -29,11 +30,10 @@ import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.capabilities.Capabilities; import net.neoforged.neoforge.common.Tags; -import net.neoforged.neoforge.items.IItemHandler; -import net.neoforged.neoforge.items.ItemHandlerHelper; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.UnknownNullability; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; import java.util.HashSet; import java.util.List; @@ -53,7 +53,7 @@ public abstract class BaseLaserBlockEntity extends BlockEntity { protected HashSet irradiateSelfLaserBlockSet = new HashSet<>(); protected boolean changed = false; @Getter - protected @UnknownNullability BlockPos irradiateBlockPos = null; + protected @Nullable BlockPos irradiateBlockPos = null; @Getter protected int laserLevel = 0; @@ -78,21 +78,21 @@ private boolean canPassThrough(Direction direction, BlockPos blockPos) { } public void updateIrradiateBlockPos(@Nullable BlockPos newPos) { - if (irradiateBlockPos == null) { + if (this.irradiateBlockPos == null) { if (newPos != null) this.markChanged(); - irradiateBlockPos = newPos; + this.irradiateBlockPos = newPos; return; } - if (!irradiateBlockPos.equals(newPos)) this.markChanged(); - irradiateBlockPos = newPos; + if (!this.irradiateBlockPos.equals(newPos)) this.markChanged(); + this.irradiateBlockPos = newPos; } public void resetState() { - changed = false; + this.changed = false; } public void markChanged() { - changed = true; + this.changed = true; } private BlockPos getIrradiateBlockPos(int expectedLength, Direction direction, BlockPos originPos) { @@ -111,8 +111,8 @@ protected int getBaseLaserLevel() { } protected int calculateLaserLevel() { - return getBaseLaserLevel() - + irradiateSelfLaserBlockSet.stream() + return this.getBaseLaserLevel() + + this.irradiateSelfLaserBlockSet.stream() .mapToInt(BaseLaserBlockEntity::calculateLaserLevel) .sum(); } @@ -120,17 +120,17 @@ protected int calculateLaserLevel() { public void syncTo(ServerPlayer player) { PacketDistributor.sendToPlayer( player, - new LaserEmitPacket(getLaserLevel(), getBlockPos(), irradiateBlockPos) + new LaserEmitPacket(getLaserLevel(), getBlockPos(), this.irradiateBlockPos) ); } public void tick(Level level) { - if (changed) { + if (this.changed) { if (level instanceof ServerLevel serverLevel) { PacketDistributor.sendToPlayersTrackingChunk( serverLevel, level.getChunkAt(getBlockPos()).getPos(), - new LaserEmitPacket(getLaserLevel(), getBlockPos(), irradiateBlockPos) + new LaserEmitPacket(getLaserLevel(), getBlockPos(), this.irradiateBlockPos) ); } } @@ -141,7 +141,7 @@ && getIrradiateBlockPos() != null ) { HeaterManager.addProducer(this.getBlockPos(), serverLevel, ModHeaterInfos.LASER_EMITTER); } - tickCount++; + this.tickCount++; } /** @@ -150,12 +150,8 @@ && getIrradiateBlockPos() != null public void emitLaser(Direction direction) { if (this.level == null) return; BlockPos tempIrradiateBlockPos = this.getIrradiateBlockPos(this.maxTransmissionDistance, direction, this.getBlockPos()); - if (!tempIrradiateBlockPos.equals(this.irradiateBlockPos)) { - if ( - this.irradiateBlockPos != null - && this.level.getBlockEntity(this.irradiateBlockPos) - instanceof BaseLaserBlockEntity lastIrradiatedLaserBlockEntity - ) { + if (this.irradiateBlockPos != null && !tempIrradiateBlockPos.equals(this.irradiateBlockPos)) { + if (this.level.getBlockEntity(this.irradiateBlockPos) instanceof BaseLaserBlockEntity lastIrradiatedLaserBlockEntity) { lastIrradiatedLaserBlockEntity.onCancelingIrradiation(this); } } @@ -190,12 +186,13 @@ public void emitLaser(Direction direction) { .getCenter() .add(0.0625, 0.0625, 0.0625) ); + // noinspection deprecation this.level.getEntities( EntityTypeTest.forClass(LivingEntity.class), trackBoundingBox, Entity::isAlive ).forEach(livingEntity -> - livingEntity.hurt( + livingEntity.hurtOrSimulate( ModDamageTypes.laser(this.level), hurt ) @@ -208,7 +205,7 @@ public void emitLaser(Direction direction) { if (irradiateBlock.is(Tags.Blocks.ORES)) { List drops = BreakBlockUtil.drop( serverLevel, - irradiateBlockPos + this.irradiateBlockPos ); this.deliverItem(drops, direction, this.irradiateBlockPos); } @@ -218,20 +215,20 @@ public void emitLaser(Direction direction) { public void deliverItem(List drops, Direction direction, BlockPos sourceBlockPos) { if (this.level == null) return; Vec3 blockPos = getBlockPos().relative(direction.getOpposite()).getCenter(); - BlockPos downStreamPos = getBlockPos().relative(getFacing().getOpposite()); + BlockPos downStreamPos = getBlockPos().relative(this.getFacing().getOpposite()); if (getLevel() == null) return; - IItemHandler cap = getLevel() + ResourceHandler cap = getLevel() .getCapability( - Capabilities.ItemHandler.BLOCK, + Capabilities.Item.BLOCK, downStreamPos, - getFacing() + this.getFacing() ); BlockState sourceBlock = this.level.getBlockState(sourceBlockPos); drops.forEach(itemStack -> { if (cap != null) { - ItemStack outItemStack = ItemHandlerHelper.insertItem(cap, itemStack, true); + ItemStack outItemStack = ItemHandlerUtil.insertItem(cap, itemStack, true); if (outItemStack.isEmpty()) { - ItemHandlerHelper.insertItem(cap, itemStack, false); + ItemHandlerUtil.insertItem(cap, itemStack, false); } else { this.level.addFreshEntity(new ItemEntity( this.level, @@ -279,23 +276,23 @@ public void deliverItem(List drops, Direction direction, BlockPos sou */ public boolean isInIrradiateSelfLaserBlockSet(BaseLaserBlockEntity baseLaserBlockEntity) { return baseLaserBlockEntity == this - || irradiateSelfLaserBlockSet.contains(baseLaserBlockEntity) - || irradiateSelfLaserBlockSet.stream() + || this.irradiateSelfLaserBlockSet.contains(baseLaserBlockEntity) + || this.irradiateSelfLaserBlockSet.stream() .anyMatch(baseLaserBlockEntity1 -> baseLaserBlockEntity1.isInIrradiateSelfLaserBlockSet(baseLaserBlockEntity)); } public void onIrradiated(BaseLaserBlockEntity baseLaserBlockEntity) { - irradiateSelfLaserBlockSet.add(baseLaserBlockEntity); + this.irradiateSelfLaserBlockSet.add(baseLaserBlockEntity); } /** * 当方块被取消激光照射时调用 */ public void onCancelingIrradiation(BaseLaserBlockEntity baseLaserBlockEntity) { - irradiateSelfLaserBlockSet.remove(baseLaserBlockEntity); - BlockPos tempIrradiateBlockPos = irradiateBlockPos; - updateIrradiateBlockPos(null); + this.irradiateSelfLaserBlockSet.remove(baseLaserBlockEntity); + BlockPos tempIrradiateBlockPos = this.irradiateBlockPos; + this.updateIrradiateBlockPos(null); if (level == null) return; if (tempIrradiateBlockPos == null) return; if (!(level.getBlockEntity(tempIrradiateBlockPos) instanceof BaseLaserBlockEntity irradiateBlockEntity)) return; @@ -308,12 +305,12 @@ public void onCancelingIrradiation(BaseLaserBlockEntity baseLaserBlockEntity) { public void setRemoved() { super.setRemoved(); if (level == null) return; - if (irradiateBlockPos == null) return; - if (!level.isLoaded(irradiateBlockPos)) return; - if (!(level.getBlockEntity(irradiateBlockPos) instanceof BaseLaserBlockEntity irradiateBlockEntity)) return; + if (this.irradiateBlockPos == null) return; + if (!level.isLoaded(this.irradiateBlockPos)) return; + if (!(level.getBlockEntity(this.irradiateBlockPos) instanceof BaseLaserBlockEntity irradiateBlockEntity)) return; irradiateBlockEntity.onCancelingIrradiation(this); if (level.isClientSide()) { - CacheableBERenderingPipeline.getInstance().update(this); + CachedBlockEntityRenderingPipeline.getInstance().update(this, true); } } @@ -321,41 +318,28 @@ public float getLaserOffset() { return 0; } - /** - * 为了适配forge中修改的渲染逻辑所添加的函数 - * 返回一个无限碰撞箱 - * - * @return forge中为原版信标生成的无限碰撞箱 - */ - @SuppressWarnings("unused") - public AABB getRenderBoundingBox() { - return new AABB( - Double.NEGATIVE_INFINITY, - Double.NEGATIVE_INFINITY, - Double.NEGATIVE_INFINITY, - Double.POSITIVE_INFINITY, - Double.POSITIVE_INFINITY, - Double.POSITIVE_INFINITY); - } - @Override public void clearRemoved() { super.clearRemoved(); if (this.level != null && this.level.isClientSide()) { - CacheableBERenderingPipeline.getInstance().update(this); + CachedBlockEntityRenderingPipeline.getInstance().update(this, true); } } + public int getLaserColor() { + return 0x00ff0d0d; + } + public void updateLaserLevel(int value) { - if (laserLevel != value) { - markChanged(); + if (this.laserLevel != value) { + this.markChanged(); } - laserLevel = value; + this.laserLevel = value; } public void clientUpdate(BlockPos irradiateBlockPos, int laserLevel) { this.irradiateBlockPos = irradiateBlockPos; this.laserLevel = laserLevel; - CacheableBERenderingPipeline.getInstance().update(this); + CachedBlockEntityRenderingPipeline.getInstance().update(this, true); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseMachineBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseMachineBlockEntity.java index 7dc38f08f4..446ed21a68 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseMachineBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/BaseMachineBlockEntity.java @@ -1,6 +1,6 @@ package dev.dubhe.anvilcraft.block.entity; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -12,7 +12,7 @@ @Getter public abstract class BaseMachineBlockEntity extends BlockEntity - implements MenuProvider, IItemHandlerHolder { + implements MenuProvider, IItemResourceHandlerHolder { protected BaseMachineBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/BlackHoleBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/BlackHoleBlockEntity.java index 25c4a8e7a4..88315ea0bf 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/BlackHoleBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/BlackHoleBlockEntity.java @@ -19,7 +19,7 @@ public static BlackHoleBlockEntity createBlockEntity(BlockEntityType type, Bl @Override public void onLoad() { super.onLoad(); - if (this.level != null && !this.level.isClientSide) { + if (this.level != null && !this.level.isClientSide()) { GravityManager.GravitySourceType type = GravityManager.GravitySourceManager.getType(this.getBlockState().getBlock()); if (type != null) { GravityManager.GravitySourceManager.addSource(this.level, this.worldPosition, type); @@ -30,7 +30,7 @@ public void onLoad() { @Override public void setRemoved() { super.setRemoved(); - if (this.level != null && !this.level.isClientSide) { + if (this.level != null && !this.level.isClientSide()) { GravityManager.GravitySourceManager.removeSource(this.level, this.worldPosition); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/CelestialForgingAnvilBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/CelestialForgingAnvilBlockEntity.java index ca8b172604..6a37a81f1c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/CelestialForgingAnvilBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/CelestialForgingAnvilBlockEntity.java @@ -11,6 +11,8 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; public class CelestialForgingAnvilBlockEntity extends BlockEntity { @Getter @@ -33,15 +35,15 @@ public void tick() { } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putBoolean("amplified", this.isAmplify); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putBoolean("amplified", this.isAmplify); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.isAmplify = tag.getBoolean("amplified"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.isAmplify = input.getBooleanOr("amplified", false); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargeCollectorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargeCollectorBlockEntity.java index 04d4d6055b..18c0cfd751 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargeCollectorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargeCollectorBlockEntity.java @@ -3,21 +3,22 @@ import dev.dubhe.anvilcraft.api.power.IPowerProducer; import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.api.tooltip.providers.IHasAffectRange; -import dev.dubhe.anvilcraft.block.ChargeCollectorBlock; +import dev.dubhe.anvilcraft.block.power.generator.ChargeCollectorBlock; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.network.ChargeCollectorIncomingChargePacket; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.LinkedList; import java.util.List; @@ -97,26 +98,26 @@ public int getOutputPower() { } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.inputCooldownCount = tag.getInt("InputCooldownCount"); - this.outputCooldownCount = tag.getInt("OutputCooldownCount"); - this.chargeCount = tag.getDouble("ChargeCount"); - this.power = tag.getInt("Power"); - int[] charges = tag.getIntArray("Charges"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.inputCooldownCount = input.getIntOr("InputCooldownCount", 2); + this.outputCooldownCount = input.getIntOr("OutputCooldownCount", 10); + this.chargeCount = input.getDoubleOr("ChargeCount", 0); + this.power = input.getIntOr("Power", 0); + int[] charges = input.getIntArray("Charges").orElse(new int[0]); for (int i : charges) { this.charges.add(i); } } @Override - public void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - tag.putInt("InputCooldownCount", this.inputCooldownCount); - tag.putInt("OutputCooldownCount", this.outputCooldownCount); - tag.putDouble("ChargeCount", this.chargeCount); - tag.putInt("Power", this.power); - tag.putIntArray("Charges", this.charges); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("InputCooldownCount", this.inputCooldownCount); + output.putInt("OutputCooldownCount", this.outputCooldownCount); + output.putDouble("ChargeCount", this.chargeCount); + output.putInt("Power", this.power); + output.putIntArray("Charges", this.charges.stream().mapToInt(i -> i).toArray()); } @Override @@ -157,7 +158,7 @@ public double incomingCharge(double num, BlockPos srcPos) { double acceptableChargeCount = num - overflow; PacketDistributor.sendToPlayersTrackingChunk( (ServerLevel) this.level, - this.level.getChunkAt(worldPosition).getPos(), + ChunkPos.containing(worldPosition), new ChargeCollectorIncomingChargePacket( srcPos, this.worldPosition, diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargerBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargerBlockEntity.java index 419e7ddc4d..bc17ad08c4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargerBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ChargerBlockEntity.java @@ -2,12 +2,14 @@ import dev.dubhe.anvilcraft.api.IHasDisplayItem; import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.IPowerProducer; +import dev.dubhe.anvilcraft.api.power.PowerComponentInfo; import dev.dubhe.anvilcraft.api.power.PowerComponentType; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.ChargerBlock; +import dev.dubhe.anvilcraft.block.power.generator.ChargerBlock; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.init.recipe.ModRecipeTypes; import dev.dubhe.anvilcraft.network.ChargerSyncPacket; @@ -17,25 +19,27 @@ import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStackTemplate; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.SingleRecipeInput; import net.minecraft.world.level.Level; +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.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; +import org.jspecify.annotations.Nullable; import java.util.Optional; public class ChargerBlockEntity extends BlockEntity - implements IPowerConsumer, IPowerProducer, IFilterBlockEntity, IStateListener, IItemHandlerHolder, IHasDisplayItem { + implements IPowerConsumer, IPowerProducer, IFilterBlockEntity, IStateListener, IItemResourceHandlerHolder, IHasDisplayItem { @Setter private boolean isCharger; @@ -50,39 +54,46 @@ public class ChargerBlockEntity extends BlockEntity private final FilteredItemStackHandler itemHandler = new FilteredItemStackHandler(3) { @Override - public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { - if (slot == 0 && itemHandler.getStackInSlot(0).isEmpty()) { - ItemStack original = stack.copy(); - original.shrink(1); - if (original.isEmpty()) { - return super.insertItem(slot, stack.copyWithCount(1), simulate); - } else { - ItemStack left = super.insertItem(slot, stack.copyWithCount(1), simulate); - return stack.copyWithCount(stack.getCount() - 1 + left.getCount()); - } - } else { - return stack; - } + public int insert(ItemResource resource, int amount, TransactionContext transaction) { + if (!this.getResource(0).isEmpty()) return 0; + return super.insert(0, resource, 1, transaction); } @Override - public boolean isItemValid(int slot, ItemStack stack) { - return containsValidItem(stack); + public int insert(int index, ItemResource resource, int amount, TransactionContext transaction) { + if (index != 0) return 0; + return super.insert(index, resource, amount, transaction); } @Override - public ItemStack extractItem(int slot, int amount, boolean simulate) { - return slot == 2 ? super.extractItem(2, amount, simulate) : ItemStack.EMPTY; + public boolean isValid(int index, ItemResource resource) { + return ChargerBlockEntity.this.containsValidItem(resource); } @Override - protected void onContentsChanged(int slot) { - super.onContentsChanged(slot); - if (level != null && !level.isClientSide) { - setChanged(); - updateDisplayItemStack(); - level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); - } + public int extract(ItemResource resource, int amount, TransactionContext transaction) { + return super.extract(2, resource, amount, transaction); + } + + @Override + public int extract(int index, ItemResource resource, int amount, TransactionContext transaction) { + if (index != 2) return 0; + return super.extract(2, resource, amount, transaction); + } + + @Override + protected void onContentsChanged(int index, ItemStack previousContents) { + super.onContentsChanged(index, previousContents); + Level level = ChargerBlockEntity.this.getLevel(); + if (level == null || level.isClientSide()) return; + ChargerBlockEntity.this.setChanged(); + ChargerBlockEntity.this.updateDisplayItemStack(); + ChargerBlockEntity.this.level.sendBlockUpdated( + ChargerBlockEntity.this.getBlockPos(), + ChargerBlockEntity.this.getBlockState(), + ChargerBlockEntity.this.getBlockState(), + Block.UPDATE_ALL + ); } }; @@ -95,100 +106,98 @@ protected void onContentsChanged(int slot) { public ChargerBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); - isCharger = blockState.is(ModBlocks.CHARGER.get()); + this.isCharger = blockState.is(ModBlocks.CHARGER.get()); } - public boolean containsValidItem(ItemStack stack) { - SingleRecipeInput input = new SingleRecipeInput(stack); - if (level != null) { - Optional> x = level.getRecipeManager() - .getRecipeFor(ModRecipeTypes.CHARGER_CHARGING_TYPE.get(), input, level); - if (x.isPresent()) { - if (x.get().value().power == 0) return false; - return isCharger == x.get().value().power < 0; - } - } - return false; + public boolean containsValidItem(ItemResource resource) { + SingleRecipeInput input = new SingleRecipeInput(resource.toStack()); + if (!(this.getLevel() instanceof ServerLevel serverLevel)) return false; + Optional> recipe = serverLevel.recipeAccess().getRecipeFor( + ModRecipeTypes.CHARGER_CHARGING.get(), + input, + serverLevel + ); + if (recipe.isEmpty()) return false; + if (recipe.get().value().power() == 0) return false; + return this.isCharger == recipe.get().value().power() < 0; } @Nullable - private ChargerChargingRecipe getItemRecipe(ItemStack stack) { - SingleRecipeInput input = new SingleRecipeInput(stack); - if (level != null) { - Optional> x = level.getRecipeManager() - .getRecipeFor(ModRecipeTypes.CHARGER_CHARGING_TYPE.get(), input, level); - if (x.isPresent()) { - return x.get().value(); - } - } - return null; + private ChargerChargingRecipe getItemRecipe(ItemResource resource) { + SingleRecipeInput input = new SingleRecipeInput(resource.toStack()); + if (!(this.getLevel() instanceof ServerLevel serverLevel)) return null; + Optional> recipe = serverLevel.recipeAccess().getRecipeFor( + ModRecipeTypes.CHARGER_CHARGING.get(), + input, + serverLevel + ); + return recipe.map(RecipeHolder::value).orElse(null); } - private boolean checkRecipeItemNotValid(@Nullable ChargerChargingRecipe recipe, @SuppressWarnings("unused") ItemStack stack) { - if (recipe != null) { - if (recipe.power == 0) return true; - return isCharger != recipe.power < 0; - } - return true; + private boolean checkRecipeItemNotValid(@Nullable ChargerChargingRecipe recipe) { + if (recipe == null) return true; + if (recipe.power() == 0) return true; + return this.isCharger != recipe.power() < 0; } private void moveItemToTransformingSlot() { - ItemStack stack = itemHandler.getStackInSlot(0).copy(); - if (stack.isEmpty()) return; - if (!itemHandler.getStackInSlot(1).isEmpty()) return; - ChargerChargingRecipe recipe = getItemRecipe(stack); - if (checkRecipeItemNotValid(recipe, stack)) return; - itemHandler.setStackInSlot(0, ItemStack.EMPTY); - if (isCharger) { - itemHandler.setStackInSlot(1, stack); + ItemResource resource = this.itemHandler.getResource(0); + if (resource.isEmpty()) return; + if (!this.itemHandler.getResource(1).isEmpty()) return; + ChargerChargingRecipe recipe = this.getItemRecipe(resource); + if (this.checkRecipeItemNotValid(recipe)) return; + this.itemHandler.set(0, ItemResource.EMPTY, 0); + if (this.isCharger) { + this.itemHandler.set(1, resource, 1); } else { - ItemStack transformed = recipe.getResult().copy(); - itemHandler.setStackInSlot(1, transformed); + ItemStackTemplate transformed = recipe.result(); + this.itemHandler.set(1, ItemResource.of(transformed), transformed.count()); } - timeLeft = recipe.time + 1; // since there is a "timeLeft--" after this, here +1 to negate - timeTotalCache = recipe.time; // make a total time cache for client display - powerValue = recipe.power; + this.timeLeft = recipe.time() + 1; // since there is a "timeLeft--" after this, here +1 to negate + this.timeTotalCache = recipe.time(); // make a total time cache for client display + this.powerValue = recipe.power(); if (this.getCurrentLevel() == null || !(this.getCurrentLevel() instanceof ServerLevel serverLevel)) return; PacketDistributor.sendToPlayersTrackingChunk( - serverLevel, serverLevel.getChunk(this.getBlockPos()).getPos(), - new ChargerSyncPacket(this.getPos(), this.timeLeft, this.timeTotalCache)); + serverLevel, + serverLevel.getChunk(this.getBlockPos()).getPos(), + new ChargerSyncPacket(this.getPos(), this.timeLeft, this.timeTotalCache) + ); } private void moveItemToTransformedOverSlot() { - ItemStack stack = itemHandler.getStackInSlot(1).copy(); - if (stack.isEmpty()) return; - if (!itemHandler.getStackInSlot(2).isEmpty()) { - powerValue = 0; + ItemResource resource = this.itemHandler.getResource(1); + if (resource.isEmpty()) return; + if (!this.itemHandler.getResource(2).isEmpty()) { + this.powerValue = 0; return; } - if (isCharger) { - ChargerChargingRecipe recipe = getItemRecipe(stack); - if (checkRecipeItemNotValid(recipe, stack)) return; - ItemStack transformed = recipe.getResult().copy(); - itemHandler.setStackInSlot(2, transformed); + if (this.isCharger) { + ChargerChargingRecipe recipe = this.getItemRecipe(resource); + if (this.checkRecipeItemNotValid(recipe)) return; + ItemStackTemplate transformed = recipe.result(); + this.itemHandler.set(2, ItemResource.of(transformed), transformed.count()); } else { - itemHandler.setStackInSlot(2, stack); + this.itemHandler.set(2, resource, 1); } - itemHandler.setStackInSlot(1, ItemStack.EMPTY); - powerValue = 0; + this.itemHandler.set(1, ItemResource.EMPTY, 0); + this.powerValue = 0; } private void updateDisplayItemStack() { - ItemStack newDisplayStack = getDisplayItemStackForRender(); - if (!ItemStack.matches(displayItemStack, newDisplayStack)) { - displayItemStack = newDisplayStack.copy(); - PacketDistributor.sendToPlayersTrackingChunk( - (ServerLevel) level, - level.getChunk(getBlockPos()).getPos(), - new UpdateDisplayItemPacket(displayItemStack, getPos()) - ); - } + ItemStack newDisplayStack = this.getDisplayItemStackForRender(); + if (ItemStack.matches(this.displayItemStack, newDisplayStack)) return; + this.displayItemStack = newDisplayStack.copy(); + PacketDistributor.sendToPlayersTrackingChunk( + (ServerLevel) this.level, + this.level.getChunk(this.getBlockPos()).getPos(), + new UpdateDisplayItemPacket(this.displayItemStack, this.getPos()) + ); } private ItemStack getDisplayItemStackForRender() { for (int i = 2; i >= 0; i--) { - if (!itemHandler.getStackInSlot(i).isEmpty()) { - return itemHandler.getStackInSlot(i); + if (!this.itemHandler.getResource(i).isEmpty()) { + return this.itemHandler.getResource(i).toStack(this.itemHandler.getAmountAsInt(i)); } } return ItemStack.EMPTY; @@ -201,59 +210,58 @@ public void updateDisplayItem(ItemStack stack) { @Override public BlockPos getPos() { - return getBlockPos(); + return this.getBlockPos(); } @Override public @Nullable Level getCurrentLevel() { - return getLevel(); + return this.getLevel(); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putInt("TimeLeft", timeLeft); - tag.put("Depository", itemHandler.serializeNBT(provider)); - tag.putBoolean("Mode", isCharger); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("TimeLeft", this.timeLeft); + this.itemHandler.serialize(output.child("Depository")); + output.putBoolean("Mode", this.isCharger); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - timeLeft = tag.getInt("TimeLeft"); - itemHandler.deserializeNBT(provider, tag.getCompound("Depository")); - isCharger = tag.getBoolean("Mode"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.timeLeft = input.getIntOr("TimeLeft", 0); + this.itemHandler.deserialize(input.childOrEmpty("Depository")); + this.isCharger = input.getBooleanOr("Mode", false); } @Override public int getInputPower() { - return isCharger && !this.getBlockState().getValue(ChargerBlock.POWERED) ? -powerValue : 0; + return this.isCharger && !this.getBlockState().getValue(ChargerBlock.POWERED) ? -this.powerValue : 0; } @Override public PowerComponentType getComponentType() { - return isCharger ? PowerComponentType.CONSUMER : PowerComponentType.PRODUCER; + return this.isCharger ? PowerComponentType.CONSUMER : PowerComponentType.PRODUCER; } @Override public int getOutputPower() { - return !isCharger && !this.getBlockState().getValue(ChargerBlock.POWERED) ? powerValue : 0; + return !this.isCharger && !this.getBlockState().getValue(ChargerBlock.POWERED) ? this.powerValue : 0; } public double getProgress() { - if (this.timeTotalCache != 0) return 1 - (double) timeLeft / timeTotalCache; + if (this.timeTotalCache != 0) return 1 - (double) this.timeLeft / this.timeTotalCache; return 0; } public int getAnalogRedstoneSignal() { - double progress = this.getProgress(); - if (itemHandler.getStackInSlot(0).isEmpty() && itemHandler.getStackInSlot(1).isEmpty()) return 0; - return (int) Math.round(progress * 15); + if (this.itemHandler.getResource(0).isEmpty() && this.itemHandler.getResource(1).isEmpty()) return 0; + return (int) Math.round(this.getProgress() * 15); } @Override public FilteredItemStackHandler getFilteredItemStackHandler() { - return itemHandler; + return this.itemHandler; } @Override @@ -263,74 +271,72 @@ public boolean isFilterEnabled() { @Override public boolean isSlotDisabled(int slot) { - return timeLeft > 0; + return this.timeLeft > 0; } @Override public Boolean getState() { - return isCharger; + return this.isCharger; } @Override public void notifyStateChanged(Boolean newState) { - isCharger = newState; - ItemStack stack0 = itemHandler.getStackInSlot(0).copy(); - ItemStack stack1 = itemHandler.getStackInSlot(1).copy(); - ItemStack stack2 = itemHandler.getStackInSlot(2).copy(); - dropItemStack(stack0); - dropItemStack(stack1); - dropItemStack(stack2); - itemHandler.setStackInSlot(0, ItemStack.EMPTY); - itemHandler.setStackInSlot(1, ItemStack.EMPTY); - itemHandler.setStackInSlot(2, ItemStack.EMPTY); - timeLeft = 0; - powerValue = 0; - } - - private void dropItemStack(ItemStack stack1) { - if (!stack1.isEmpty()) { - if (level != null) { - Vec3 dropPos = getBlockPos().above().getBottomCenter(); - ItemEntity itemEntity = new ItemEntity(level, dropPos.x, dropPos.y, dropPos.z, - stack1, 0, 0, 0); - itemEntity.setDefaultPickUpDelay(); - } - } + this.isCharger = newState; + ItemHandlerUtil.dropAllToPos(this.itemHandler, this.getCurrentLevel(), this.getPos().above().getBottomCenter()); + this.timeLeft = 0; + this.powerValue = 0; } /** * 充放电器逻辑 */ - public void tick(Level level1, BlockPos blockPos) { - this.flushState(level1, blockPos); - BlockState state = level1.getBlockState(blockPos); + public void tick(Level level, BlockPos blockPos) { + this.flushState(level, blockPos); + BlockState state = level.getBlockState(blockPos); boolean powered = state.getValue(ChargerBlock.POWERED); - if (grid == null) return; + if (this.grid == null) return; if (powered) return; - if (timeLeft == 0) { - moveItemToTransformingSlot(); + if (this.timeLeft == 0) { + this.moveItemToTransformingSlot(); } - if (timeLeft > 0) { - if (!isCharger || isGridWorking()) { + if (this.timeLeft > 0) { + if (!this.isCharger || this.isGridWorking()) { // if isDisCharger or (isCharger and isGridWorking) - timeLeft--; + this.timeLeft--; } } - if (timeLeft == 0) { - moveItemToTransformedOverSlot(); + if (this.timeLeft == 0) { + this.moveItemToTransformedOverSlot(); this.timeTotalCache = 0; } int signal = this.getAnalogRedstoneSignal(); if (this.signalCache != signal) { this.signalCache = signal; - level1.updateNeighborsAt(this.getBlockPos(), this.getBlockState().getBlock()); + level.updateNeighborsAt(this.getBlockPos(), this.getBlockState().getBlock()); } - if (!(level1 instanceof ServerLevel level2)) return; - if (level2.getGameTime() % 10 != 0) return; + if (!(level instanceof ServerLevel serverLevel)) return; + if (serverLevel.getGameTime() % 10 != 0) return; PacketDistributor.sendToPlayersTrackingChunk( - level2, level2.getChunk(this.getBlockPos()).getPos(), - new ChargerSyncPacket(this.getPos(), this.timeLeft, this.timeTotalCache)); + serverLevel, + serverLevel.getChunk(this.getBlockPos()).getPos(), + new ChargerSyncPacket(this.getPos(), this.timeLeft, this.timeTotalCache) + ); + } + + @Override + public PowerComponentInfo toPowerComponentInfo() { + if (this.isCharger) { + return IPowerConsumer.super.toPowerComponentInfo(); + } else { + return IPowerProducer.super.toPowerComponentInfo(); + } + } + + @Override + public void preRemoveSideEffects(BlockPos pos, BlockState state) { + FilteredItemStackHandler depository = this.getFilteredItemStackHandler(); + ItemHandlerUtil.dropAllToPos(depository, this.level, this.getPos().getCenter()); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ChuteBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ChuteBlockEntity.java index c7eb5ca16d..bc5c7dd3d7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ChuteBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ChuteBlockEntity.java @@ -1,7 +1,10 @@ package dev.dubhe.anvilcraft.block.entity; -import dev.dubhe.anvilcraft.block.ChuteBlock; +import dev.dubhe.anvilcraft.api.block.entity.IExtensibleBlockEntity; +import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; +import dev.dubhe.anvilcraft.block.logistics.chute.ChuteBlock; import dev.dubhe.anvilcraft.init.ModMenuTypes; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.inventory.ChuteMenu; import lombok.Getter; @@ -14,11 +17,11 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.DirectionProperty; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.jspecify.annotations.Nullable; @Getter -public class ChuteBlockEntity extends BaseChuteBlockEntity { +public class ChuteBlockEntity extends BaseChuteBlockEntity implements IExtensibleBlockEntity { protected ChuteBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); } @@ -34,7 +37,7 @@ protected boolean validateBlockState(BlockState state) { } @Override - protected DirectionProperty getFacingProperty() { + protected EnumProperty getFacingProperty() { return ChuteBlock.FACING; } @@ -57,9 +60,6 @@ public static ChuteBlockEntity createBlockEntity(BlockEntityType type, BlockP return new ChuteBlockEntity(type, pos, blockState); } - public static void onBlockEntityRegister(BlockEntityType type) { - } - @Override public Component getDisplayName() { return Component.translatable("block.anvilcraft.chute"); @@ -71,4 +71,20 @@ public AbstractContainerMenu createMenu(int i, Inventory inventory, Player playe if (player.isSpectator()) return null; return new ChuteMenu(ModMenuTypes.CHUTE.get(), i, inventory, this); } + + @Override + public BlockEntityType getThatType() { + return ModBlockEntities.SIMPLE_CHUTE.get(); + } + + @Override + public void extend(SimpleChuteBlockEntity newBe) { + ItemHandlerUtil.exportToTarget(this.getItemHandler(), 64, (_, _) -> true, newBe.getItemHandler()); + ItemHandlerUtil.dropAllToPos(this.getItemHandler(), newBe.getLevel(), newBe.getBlockPos().getCenter()); + } + + @Override + public void preRemoveSideEffects(BlockPos pos, BlockState state) { + ItemHandlerUtil.dropAllToPos(this.getItemHandler(), this.getLevel(), pos.getCenter()); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ConfinementChamberBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ConfinementChamberBlockEntity.java index 58ab05b6eb..46a99f0136 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ConfinementChamberBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ConfinementChamberBlockEntity.java @@ -1,23 +1,24 @@ package dev.dubhe.anvilcraft.block.entity; import dev.dubhe.anvilcraft.api.IHasDisplayItem; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.network.UpdateDisplayItemPacket; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.items.ItemStackHandler; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.neoforged.neoforge.network.PacketDistributor; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.ItemStacksResourceHandler; import java.util.concurrent.atomic.AtomicInteger; -public class ConfinementChamberBlockEntity extends BlockEntity implements IItemHandlerHolder, IHasDisplayItem { +public class ConfinementChamberBlockEntity extends BlockEntity implements IItemResourceHandlerHolder, IHasDisplayItem { private static final AtomicInteger COUNTER = new AtomicInteger(0); @Getter private final int id; @@ -37,29 +38,32 @@ public static ConfinementChamberBlockEntity createBlockEntity(BlockEntityType } @Getter - private final ItemStackHandler itemHandler = new ItemStackHandler(1) { + private final ItemStacksResourceHandler itemHandler = new ItemStacksResourceHandler(1) { @Override - protected void onContentsChanged(int slot) { - super.onContentsChanged(slot); - if (level == null || level.isClientSide) return; - PacketDistributor.sendToAllPlayers((new UpdateDisplayItemPacket(getStackInSlot(slot), getBlockPos()))); + protected void onContentsChanged(int index, ItemStack previousContents) { + super.onContentsChanged(index, previousContents); + if (ConfinementChamberBlockEntity.this.level == null || ConfinementChamberBlockEntity.this.level.isClientSide()) return; + PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket( + this.getStackFrom(this.getResource(index), this.getAmountAsInt(index)), + ConfinementChamberBlockEntity.this.getBlockPos() + )); } }; @Override public void updateDisplayItem(ItemStack stack) { - itemHandler.setStackInSlot(0, stack); + this.itemHandler.set(0, ItemResource.of(stack), stack.getCount()); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.put("Inventory", itemHandler.serializeNBT(provider)); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + this.itemHandler.serialize(output.child("Inventory")); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - itemHandler.deserializeNBT(provider, tag.getCompound("Inventory")); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + input.child("Inventory").ifPresent(this.itemHandler::deserialize); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java index 8e74fad269..49b6fea789 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java @@ -2,7 +2,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -import dev.dubhe.anvilcraft.block.CorruptedBeaconBlock; +import dev.dubhe.anvilcraft.block.workstation.CorruptedBeaconBlock; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.recipe.ModRecipeTypes; import dev.dubhe.anvilcraft.recipe.transform.MobTransformInput; @@ -20,18 +20,19 @@ import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.tags.BlockTags; -import net.minecraft.util.FastColor; +import net.minecraft.util.ARGB; import net.minecraft.world.effect.MobEffectInstance; 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.SkeletonHorse; -import net.minecraft.world.entity.animal.horse.ZombieHorse; +import net.minecraft.world.entity.animal.equine.AbstractHorse; +import net.minecraft.world.entity.animal.equine.SkeletonHorse; +import net.minecraft.world.entity.animal.equine.ZombieHorse; 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.Blocks; +import net.minecraft.world.level.block.entity.BeaconBeamOwner; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -42,9 +43,9 @@ import java.util.Objects; import java.util.Optional; -public class CorruptedBeaconBlockEntity extends BlockEntity { - List beamSections = Lists.newArrayList(); - private List checkingBeamSections = Lists.newArrayList(); +public class CorruptedBeaconBlockEntity extends BlockEntity implements BeaconBeamOwner { + List beamSections = Lists.newArrayList(); + private List checkingBeamSections = Lists.newArrayList(); @Getter int levels; private int lastCheckY; @@ -85,7 +86,9 @@ public static void tick(Level level, BlockPos pos, BlockState state, CorruptedBe } // 获取当前正在检查的光柱段 - BeaconBeamSection beamSection = blockEntity.checkingBeamSections.isEmpty() ? null : blockEntity.checkingBeamSections.getLast(); + BeaconBeamOwner.Section beamSection = blockEntity.checkingBeamSections.isEmpty() + ? null + : blockEntity.checkingBeamSections.getLast(); // 获取地表高度 int height = level.getHeight(Heightmap.Types.WORLD_SURFACE, posX, posZ); @@ -97,20 +100,20 @@ public static void tick(Level level, BlockPos pos, BlockState state, CorruptedBe if (colorMultiplier != null) { // 如果当前检查的光柱段为空或只有一段,则创建新的光柱段 if (blockEntity.checkingBeamSections.size() <= 1) { - beamSection = new BeaconBeamSection(0xDF101010); + beamSection = new BeaconBeamOwner.Section(0xDF101010); blockEntity.checkingBeamSections.add(beamSection); } else if (beamSection != null) { // 根据颜色是否相同决定是增加高度还是创建新的光柱段 - if (colorMultiplier == beamSection.color) { + if (colorMultiplier == beamSection.getColor()) { beamSection.increaseHeight(); } else { - beamSection = new BeaconBeamSection(FastColor.ARGB32.average(beamSection.color, colorMultiplier)); + beamSection = new BeaconBeamOwner.Section(ARGB.average(beamSection.getColor(), colorMultiplier)); blockEntity.checkingBeamSections.add(beamSection); } } } else { // 如果当前方块会阻挡光柱且不是基岩,则清空光柱段 - if (beamSection == null || blockstate.getLightBlock(level, blockpos) >= 15 && !blockstate.is(Blocks.BEDROCK)) { + if (beamSection == null || blockstate.getLightEmission(level, blockpos) >= 15 && !blockstate.is(Blocks.BEDROCK)) { blockEntity.checkingBeamSections.clear(); blockEntity.lastCheckY = height; break; @@ -141,9 +144,9 @@ public static void tick(Level level, BlockPos pos, BlockState state, CorruptedBe // 如果已完成光柱检查 if (blockEntity.lastCheckY >= height) { - blockEntity.lastCheckY = level.getMinBuildHeight() - 1; + blockEntity.lastCheckY = level.getMinY() - 1; blockEntity.beamSections = blockEntity.checkingBeamSections; - if (!level.isClientSide) { + if (!level.isClientSide()) { boolean lastHasLevel = lastLevel > 0; boolean shouldLit = blockEntity.levels > 0 && !blockEntity.beamSections.isEmpty(); // 根据信标状态变化播放相应的音效和更新方块状态 @@ -179,7 +182,7 @@ private static int updateBase(Level level, int x, int y, int z) { int k; int i = 0; int j = 1; - while (j <= 4 && (k = y - j) >= level.getMinBuildHeight()) { + while (j <= 4 && (k = y - j) >= level.getMinY()) { boolean bl = true; block1: for (int l = x - j; l <= x + j && bl; ++l) { @@ -205,20 +208,20 @@ public void setRemoved() { private static void tryTransformEntity(LivingEntity livingEntity, ServerLevel level, RecipeManager manager) { MobTransformInput input = new MobTransformInput(livingEntity); Optional> optionalRecipeHolder = manager.getRecipeFor( - ModRecipeTypes.MOB_TRANSFORM_TYPE.get(), input, level); + ModRecipeTypes.MOB_TRANSFORM.get(), input, level); MobTransformWithItemRecipe.Input input2 = MobTransformWithItemRecipe.Input.of(livingEntity); Optional> optionalRecipeHolder2 = manager.getRecipeFor( - ModRecipeTypes.MOB_TRANSFORM_WITH_ITEM_TYPE.get(), input2, level); + ModRecipeTypes.MOB_TRANSFORM_WITH_ITEM.get(), input2, level); Entity result = null; boolean noItemFlag = true; if (optionalRecipeHolder2.isPresent()) { MobTransformWithItemRecipe recipe = optionalRecipeHolder2.get().value(); - result = recipe.apply(level.random, livingEntity, level); + result = recipe.apply(level.getRandom(), livingEntity, level); if (result != null) noItemFlag = false; } if (noItemFlag && optionalRecipeHolder.isPresent()) { MobTransformRecipe recipe = optionalRecipeHolder.get().value(); - result = recipe.apply(level.random, livingEntity, level); + result = recipe.apply(level.getRandom(), livingEntity, level); } if (result == null) return; Entity vehicle = null; @@ -238,7 +241,7 @@ private static void tryTransformEntity(LivingEntity livingEntity, ServerLevel le } private static void affectEntities(Level level, BlockPos pos) { - if (level.isClientSide) return; + if (level.isClientSide()) return; AABB aabb = new AABB(pos).expandTowards(0.0, level.getHeight(), 0.0); List list = level.getEntitiesOfClass(LivingEntity.class, aabb); if (list.isEmpty()) return; @@ -251,10 +254,10 @@ private static void affectEntities(Level level, BlockPos pos) { } public static void playSound(Level level, BlockPos pos, SoundEvent sound) { - level.playSound(null, pos, sound, SoundSource.BLOCKS, 1.0f, 1.0f); + level.playSound(null, pos, sound, SoundSource.BLOCKS, 1.0F, 1.0F); } - public List getBeamSections() { + public List getBeamSections() { return this.levels == 0 ? ImmutableList.of() : this.beamSections; } @@ -270,21 +273,6 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registries) { @Override public void setLevel(Level level) { super.setLevel(level); - this.lastCheckY = level.getMinBuildHeight() - 1; - } - - @Getter - public static class BeaconBeamSection { - final int color; - private int height; - - public BeaconBeamSection(int color) { - this.color = color; - this.height = 1; - } - - protected void increaseHeight() { - this.height++; - } + this.lastCheckY = level.getMinY() - 1; } } \ No newline at end of file diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/CrabTrapBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/CrabTrapBlockEntity.java index 9601b0e517..2dc72c41fe 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/CrabTrapBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/CrabTrapBlockEntity.java @@ -1,32 +1,32 @@ package dev.dubhe.anvilcraft.block.entity; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.items.ItemStackHandler; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.transfer.item.ItemStacksResourceHandler; @Getter -public class CrabTrapBlockEntity extends BlockEntity implements IItemHandlerHolder { +public class CrabTrapBlockEntity extends BlockEntity implements IItemResourceHandlerHolder { public CrabTrapBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); } - private final ItemStackHandler itemHandler = new ItemStackHandler(9); + private final ItemStacksResourceHandler itemHandler = new ItemStacksResourceHandler(9); @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.put("Inventory", itemHandler.serializeNBT(provider)); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + this.itemHandler.serialize(output.child("Inventory")); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - itemHandler.deserializeNBT(provider, tag.getCompound("Inventory")); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.itemHandler.deserialize(input.childOrEmpty("Inventory")); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/CreativeGeneratorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/CreativeGeneratorBlockEntity.java index e12b578e9e..fd5bb138e5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/CreativeGeneratorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/CreativeGeneratorBlockEntity.java @@ -2,6 +2,7 @@ import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.IPowerProducer; +import dev.dubhe.anvilcraft.api.power.PowerComponentInfo; import dev.dubhe.anvilcraft.api.power.PowerComponentType; import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; @@ -9,8 +10,6 @@ import dev.dubhe.anvilcraft.inventory.SliderMenu; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.MenuProvider; @@ -21,7 +20,9 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import org.jspecify.annotations.Nullable; import java.util.Objects; @@ -49,15 +50,15 @@ private CreativeGeneratorBlockEntity(BlockEntityType type, BlockPos pos, Bloc } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putInt("power", power); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("power", this.power); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - this.power = tag.getInt("power"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.power = input.getIntOr("power", 0); } @Override @@ -75,6 +76,14 @@ public PowerComponentType getComponentType() { return this.power > 0 ? PowerComponentType.PRODUCER : PowerComponentType.CONSUMER; } + @Override + public PowerComponentInfo toPowerComponentInfo() { + if (this.power >= 0) { + return IPowerProducer.super.toPowerComponentInfo(); + } + return IPowerConsumer.super.toPowerComponentInfo(); + } + @Override public BlockPos getPos() { return this.getBlockPos(); @@ -100,22 +109,22 @@ public AbstractContainerMenu createMenu(int i, Inventory inventory, Player playe public void setPower(int power) { this.power = power; if (level instanceof ServerLevel) { - if (grid != null) { + if (this.grid != null) { this.grid.markChanged(); return; } - previousSyncFailed = true; + this.previousSyncFailed = true; } } public void tick() { if (level instanceof ServerLevel) { - if (previousSyncFailed && grid != null) { - previousSyncFailed = false; - grid.markChanged(); + if (this.previousSyncFailed && this.grid != null) { + this.previousSyncFailed = false; + this.grid.markChanged(); } } - time++; + this.time++; } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/DeflectionRingBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/DeflectionRingBlockEntity.java index c82a87434d..c4dd6e0aca 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/DeflectionRingBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/DeflectionRingBlockEntity.java @@ -3,11 +3,11 @@ import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerComponentType; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.DeflectionRingBlock; -import dev.dubhe.anvilcraft.block.GiantAnvilBlock; +import dev.dubhe.anvilcraft.block.power.ring.DeflectionRingBlock; import dev.dubhe.anvilcraft.block.state.Cube3x3PartHalf; import dev.dubhe.anvilcraft.block.state.DirectionCube3x3PartHalf; import dev.dubhe.anvilcraft.block.state.GiantAnvilCube; +import dev.dubhe.anvilcraft.block.workstation.GiantAnvilBlock; import dev.dubhe.anvilcraft.entity.FallingGiantAnvilEntity; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -18,8 +18,6 @@ import lombok.Setter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; @@ -34,11 +32,13 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; import org.joml.Vector2d; +import org.jspecify.annotations.Nullable; import java.util.HashMap; import java.util.HashSet; @@ -112,8 +112,8 @@ private void updateLastEntitySpeed(Double speed) { if (!(level instanceof ServerLevel serverLevel)) return; PacketDistributor.sendToPlayersTrackingChunk( serverLevel, - new ChunkPos(getBlockPos()), - new DeflectionRingUpdateLastSpeedPacket(getBlockPos(), lastEntitySpeed) + ChunkPos.containing(getBlockPos()), + new DeflectionRingUpdateLastSpeedPacket(getBlockPos(), this.lastEntitySpeed) ); } @@ -123,17 +123,17 @@ private void updateLastEntitySpeed(Double speed) { } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putDouble("lastEntitySpeed", lastEntitySpeed); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putDouble("lastEntitySpeed", this.lastEntitySpeed); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - if (tag.contains("lastEntitySpeed")) { - this.lastEntitySpeed = tag.getDouble("entity"); + public void loadAdditional(ValueInput input) { + if (input.child("lastEntitySpeed").isPresent()) { + this.lastEntitySpeed = input.getDoubleOr("entity", 0.0); } - super.loadAdditional(tag, provider); + super.loadAdditional(input); } @Override @@ -168,40 +168,40 @@ public boolean isWork() { public void tick() { if (level == null) return; - if (resetEntitySpeedTickCounter >= 40 && !level.isClientSide) updateLastEntitySpeed(0.0); - else resetEntitySpeedTickCounter++; - if (overSpeed && overSpeedTick > 1) { - overSpeed = false; - overSpeedTick = 0; + if (this.resetEntitySpeedTickCounter >= 40 && !level.isClientSide()) this.updateLastEntitySpeed(0.0); + else this.resetEntitySpeedTickCounter++; + if (this.overSpeed && this.overSpeedTick > 1) { + this.overSpeed = false; + this.overSpeedTick = 0; BlockState state = getBlockState(); if (!(state.getBlock() instanceof DeflectionRingBlock block)) return; block.updateState(level, getBlockPos(), DeflectionRingBlock.OVERLOAD, state.getValue(DeflectionRingBlock.OVERLOAD), 3); - } else if (overSpeed) { - overSpeedTick++; + } else if (this.overSpeed) { + this.overSpeedTick++; } - if (level.isClientSide) { + if (level.isClientSide()) { if (!getBlockState().getValue(DeflectionRingBlock.HALF).equals(DirectionCube3x3PartHalf.MID_CENTER)) return; - if (isWork()) { - addSelfToMap(); - accelerate(); - } else removeSelfFromMap(); + if (this.isWork()) { + this.addSelfToMap(); + this.accelerate(); + } else this.removeSelfFromMap(); } - if (grid == null) return; + if (this.grid == null) return; BlockState state = getBlockState(); if (!state.getValue(DeflectionRingBlock.HALF).equals(DirectionCube3x3PartHalf.MID_CENTER)) return; if (!(state.getBlock() instanceof DeflectionRingBlock block)) return; - if (grid.isWorking() && state.getValue(DeflectionRingBlock.OVERLOAD)) { + if (this.grid.isWorking() && state.getValue(DeflectionRingBlock.OVERLOAD)) { block.updateState(level, getBlockPos(), DeflectionRingBlock.OVERLOAD, false, 3); - } else if (!grid.isWorking() && !state.getValue(DeflectionRingBlock.OVERLOAD)) { + } else if (!this.grid.isWorking() && !state.getValue(DeflectionRingBlock.OVERLOAD)) { block.updateState(level, getBlockPos(), DeflectionRingBlock.OVERLOAD, true, 3); } - if (!isWork()) { - removeSelfFromMap(); + if (!this.isWork()) { + this.removeSelfFromMap(); return; } - addSelfToMap(); - if (state.getValue(DeflectionRingBlock.FACING).getAxis().equals(Direction.Axis.Y)) attractGianAnvil(); - accelerate(); + this.addSelfToMap(); + if (state.getValue(DeflectionRingBlock.FACING).getAxis().equals(Direction.Axis.Y)) this.attractGianAnvil(); + this.accelerate(); } private double fixPos(double p1, double p2, double p3) { @@ -218,7 +218,7 @@ public void accelerate() { AccelerateManager::canBeAccelerated ); for (Entity entity : entities2) { - if (entity.getDeltaMovement().length() > Integer.MAX_VALUE * 0.99f) { + if (entity.getDeltaMovement().length() > Integer.MAX_VALUE * 0.99F) { this.overSpeed = true; BlockState state = getBlockState(); if (!(state.getBlock() instanceof DeflectionRingBlock block)) return; @@ -229,34 +229,34 @@ public void accelerate() { boolean applyOffset = entity instanceof FallingBlockEntity || entity instanceof Player; final Vec3 fixedPos = switch (facing) { case UP -> new Vec3( - fixPos(v.z, v.z, v.x), + this.fixPos(v.z, v.z, v.x), applyOffset ? -0.5 : 0, - -fixPos(v.x, v.z, v.x) + -this.fixPos(v.x, v.z, v.x) ); case DOWN -> new Vec3( - -fixPos(v.z, v.z, v.x), + -this.fixPos(v.z, v.z, v.x), applyOffset ? -0.5 : 0, - fixPos(v.x, v.z, v.x) + this.fixPos(v.x, v.z, v.x) ); case NORTH -> new Vec3( - fixPos(v.y, v.y, v.x), - -fixPos(v.x, v.y, v.x) + (applyOffset && Math.abs(v.y) > Math.abs(v.x) ? -0.5 : 0), + this.fixPos(v.y, v.y, v.x), + -this.fixPos(v.x, v.y, v.x) + (applyOffset && Math.abs(v.y) > Math.abs(v.x) ? -0.5 : 0), 0 ); case SOUTH -> new Vec3( - -fixPos(v.y, v.y, v.x), - fixPos(v.x, v.y, v.x) + (applyOffset && Math.abs(v.y) > Math.abs(v.x) ? -0.5 : 0), + -this.fixPos(v.y, v.y, v.x), + this.fixPos(v.x, v.y, v.x) + (applyOffset && Math.abs(v.y) > Math.abs(v.x) ? -0.5 : 0), 0 ); case WEST -> new Vec3( 0, - fixPos(v.z, v.z, v.y) + (applyOffset && Math.abs(v.y) > Math.abs(v.z) ? -0.5 : 0), - -fixPos(v.y, v.z, v.y) + this.fixPos(v.z, v.z, v.y) + (applyOffset && Math.abs(v.y) > Math.abs(v.z) ? -0.5 : 0), + -this.fixPos(v.y, v.z, v.y) ); case EAST -> new Vec3( 0, - -fixPos(v.z, v.z, v.y) + (applyOffset && Math.abs(v.y) > Math.abs(v.z) ? -0.5 : 0), - fixPos(v.y, v.z, v.y) + -this.fixPos(v.z, v.z, v.y) + (applyOffset && Math.abs(v.y) > Math.abs(v.z) ? -0.5 : 0), + this.fixPos(v.y, v.z, v.y) ); }; v = switch (facing) { @@ -296,12 +296,11 @@ public void accelerate() { } entity.setDeltaMovement(entity.getDeltaMovement().scale(1.0204081632653061)); entity.setDeltaMovement(entity.getDeltaMovement().add(0, entity.getGravity(), 0)); - if (level.isClientSide) continue; - updateLastEntitySpeed(entity.getDeltaMovement().length()); + if (level.isClientSide()) continue; + this.updateLastEntitySpeed(entity.getDeltaMovement().length()); } } - @SuppressWarnings("DuplicatedCode") public void attractGianAnvil() { assert level != null; if ( @@ -375,7 +374,7 @@ public void attractGianAnvil() { .setValue(GiantAnvilBlock.CUBE, part.equals(Cube3x3PartHalf.MID_CENTER) ? GiantAnvilCube.CENTER : GiantAnvilCube.CORNER) ); } - fallingGiantAnvilEntity.ifPresent(Entity::kill); + fallingGiantAnvilEntity.ifPresent(Entity::discard); } @Override @@ -386,6 +385,6 @@ public int getInputPower() { @Override public void setRemoved() { super.setRemoved(); - removeSelfFromMap(); + this.removeSelfFromMap(); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/DetectorSlidingRailBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/DetectorSlidingRailBlockEntity.java index 98251dfe2d..1d32798eb1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/DetectorSlidingRailBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/DetectorSlidingRailBlockEntity.java @@ -1,13 +1,12 @@ package dev.dubhe.anvilcraft.block.entity; +import dev.dubhe.anvilcraft.api.sliding.SlidingBlockStructureResolver; import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import static dev.dubhe.anvilcraft.api.sliding.SlidingBlockStructureResolver.MAX_PUSH_DEPTH; - public class DetectorSlidingRailBlockEntity extends BlockEntity { @Getter private int power = 0; @@ -24,11 +23,11 @@ public void cleanPower() { } public void updatePower(int blockCount) { - if (MAX_PUSH_DEPTH <= 15) { + if (SlidingBlockStructureResolver.MAX_PUSH_DEPTH <= 15) { this.power = blockCount; return; } - this.power = blockCount / MAX_PUSH_DEPTH; + this.power = blockCount / SlidingBlockStructureResolver.MAX_PUSH_DEPTH; if (this.power < 1 && blockCount > 0) { this.power = 1; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/FishTankBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/FishTankBlockEntity.java new file mode 100644 index 0000000000..eefd67c65f --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/FishTankBlockEntity.java @@ -0,0 +1,397 @@ +package dev.dubhe.anvilcraft.block.entity; + +import com.google.common.collect.ImmutableList; +import dev.anvilcraft.lib.v2.recipe.cache.ItemResourceHandlerCache; +import dev.dubhe.anvilcraft.api.fluid.IFluidHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; +import dev.dubhe.anvilcraft.api.itemhandler.PollableItemHandler; +import dev.dubhe.anvilcraft.block.workstation.FishTankBlock; +import dev.dubhe.anvilcraft.init.block.ModFluidTags; +import dev.dubhe.anvilcraft.init.item.ModItemTags; +import lombok.Getter; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.util.Mth; +import net.minecraft.util.ProblemReporter; +import net.minecraft.util.TriState; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +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.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.BlockHitResult; +import net.neoforged.neoforge.fluids.FluidStack; +import net.neoforged.neoforge.fluids.FluidType; +import net.neoforged.neoforge.transfer.IndexModifier; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidStacksResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidUtil; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jetbrains.annotations.Unmodifiable; +import org.jspecify.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; + +@Getter +public class FishTankBlockEntity extends BlockEntity implements IItemResourceHandlerHolder, ItemResourceHandlerCache, IFluidHandlerHolder { + public static final int CAPACITY = FluidType.BUCKET_VOLUME; + private final FluidStacksResourceHandler fluidHandler = new FluidStacksResourceHandler(1, CAPACITY) { + @Override + protected void onContentsChanged(int index, FluidStack previousContents) { + super.onContentsChanged(index, previousContents); + FishTankBlockEntity.this.setChanged(); + if (!FishTankBlockEntity.shouldIgnite(previousContents)) FishTankBlockEntity.this.setIgnited(false); + Level level = FishTankBlockEntity.this.getLevel(); + if (level == null) return; + level.sendBlockUpdated( + FishTankBlockEntity.this.getBlockPos(), + FishTankBlockEntity.this.getBlockState(), + FishTankBlockEntity.this.getBlockState(), + Block.UPDATE_CLIENTS + ); + } + }; + /// 0-7 为输出产物,
+ /// 8-15 为输入物品 + private final PollableItemHandler itemHandler = new PollableItemHandler(16) { + @Override + public boolean isValid(int slot, ItemResource stack) { + return slot >= 8 && slot == this.getEmptyOrSmallerSlot(stack); + } + + @Override + protected int getEmptyOrSmallerSlot(ItemResource resource) { + int slot = -1; + int countInSlot = Integer.MAX_VALUE; + for (int i = 15; i >= 8; i--) { + ItemResource resourceIn = this.getResourceDirect(i); + if (!resourceIn.isEmpty() && !resourceIn.equals(resource)) continue; + int amount = this.getAmountAsInt(i); + if (amount <= countInSlot && amount < this.getCapacityAsIntDirect(i, resource)) { + slot = i; + countInSlot = amount; + } + } + return slot; + } + + @Override + protected void onContentsChanged(int index, ItemStack previousContents) { + super.onContentsChanged(index, previousContents); + if (index < 8) this.tryPopoutResults(index); + FishTankBlockEntity.this.setChanged(); + Level level = FishTankBlockEntity.this.getLevel(); + if (level == null) return; + level.sendBlockUpdated( + FishTankBlockEntity.this.getBlockPos(), + FishTankBlockEntity.this.getBlockState(), + FishTankBlockEntity.this.getBlockState(), + Block.UPDATE_CLIENTS + ); + } + + private void tryPopoutResults(int index) { + if (!FishTankBlockEntity.this.getBlockState().getValue(FishTankBlock.OUTLET)) return; + ItemResource resource = this.getResource(index); + if (resource.isEmpty()) return; + Direction outletDir = getBlockState().getValue(FishTankBlock.FACING); + if (FishTankBlockEntity.this.level == null) return; + try (Transaction transaction = Transaction.openRoot()) { + int extracted = this.extract(index, resource, Integer.MAX_VALUE, transaction); + if (extracted == 0) return; + FishTankBlockEntity.popResource( + FishTankBlockEntity.this.level, + FishTankBlockEntity.this.getBlockPos(), + outletDir, + resource.toStack(extracted) + ); + } + } + }; + /// 输出产物的存储代理,用于炼药锅配方输出 + private final PollableItemHandler outputProxy = new PollableItemHandler(8) { + @Override + public ItemResource getResource(int index) { + return FishTankBlockEntity.this.itemHandler.getResource(index); + } + + @Override + public long getAmountAsLong(int index) { + return FishTankBlockEntity.this.itemHandler.getAmountAsLong(index); + } + + @Override + public long getCapacityAsLong(int index, ItemResource resource) { + return FishTankBlockEntity.this.itemHandler.getCapacityAsLong(index, resource); + } + + @Override + protected void onContentsChanged(int index, ItemStack previousContents) { + FishTankBlockEntity.this.itemHandler.set(index, this.getResource(index), this.getAmountAsInt(index)); + } + }; + private boolean ignited = false; + + public FishTankBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + public void setIgnited(boolean ignited) { + this.ignited = ignited; + this.setChanged(); + Level level = this.getLevel(); + if (level == null) return; + level.sendBlockUpdated( + this.getBlockPos(), + this.getBlockState(), + this.getBlockState(), + Block.UPDATE_CLIENTS + ); + } + + @Override + public PollableItemHandler getInput() { + return this.itemHandler; + } + + public PollableItemHandler getOutput() { + return this.outputProxy; + } + + @Override + public void preRemoveSideEffects(BlockPos pos, BlockState state) { + ItemHandlerUtil.dropAllToPos(this.getItemHandler(), this.level, pos.getCenter()); + } + + @Override + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + this.fluidHandler.serialize(output.child("Fluid")); + this.itemHandler.serialize(output.child("Items")); + output.putBoolean("ignited", this.ignited); + } + + @Override + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.fluidHandler.deserialize(input.childOrEmpty("Fluid")); + this.itemHandler.deserialize(input.childOrEmpty("Items")); + this.ignited = input.getBooleanOr("ignited", false) + && FishTankBlockEntity.shouldIgnite(this.fluidHandler.getResource(0).toStack(this.fluidHandler.getAmountAsInt( + 0))); + } + + @Override + public CompoundTag getUpdateTag(HolderLookup.Provider registries) { + CompoundTag tag = super.getUpdateTag(registries); + TagValueOutput output = TagValueOutput.createWithContext( + new ProblemReporter.Collector(this.problemPath()), + registries + ); + this.fluidHandler.serialize(output.child("Fluid")); + this.itemHandler.serialize(output.child("Items")); + tag.merge(output.buildResult()); + tag.putBoolean("ignited", this.ignited); + return tag; + } + + @Override + public Packet getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + + public boolean onPlayerUse(Player player, InteractionHand hand, BlockHitResult hitResult) { + if (FluidUtil.interactWithFluidHandler(player, hand, this.getBlockPos(), this.fluidHandler)) return true; + ItemStack inHand = player.getItemInHand(hand); + if (inHand.isEmpty()) { + if (hand != InteractionHand.MAIN_HAND) return false; + List stacks = FishTankBlockEntity.extractAllFromTank(this.itemHandler, TriState.TRUE); + if (stacks.isEmpty()) return false; + for (ItemStack stack : stacks) { + player.getInventory().placeItemBackInInventory(stack); + } + return true; + } else { + if (hitResult.getLocation().y - hitResult.getBlockPos().getY() < 5 / 8F) return false; + ItemStack remain = FishTankBlockEntity.insertToTank(this.itemHandler, inHand); + if (remain.count() != inHand.count()) { + player.setItemInHand(InteractionHand.MAIN_HAND, remain.isEmpty() ? ItemStack.EMPTY : remain); + } + return false; + } + } + + /** + * 向鱼缸中放入物品 + * + * @param handler 鱼缸物品处理器 + * @param entity 要放入的物品实体 + */ + public static void insertToTank( + @Nullable ResourceHandler handler, + IndexModifier modifier, + ItemEntity entity + ) { + ItemStack stack = entity.getItem(); + if (entity.anvilcraft$isAdsorbable()) { + ItemStack remain = FishTankBlockEntity.insertToTank(handler, stack); + if (remain.isEmpty()) { + entity.discard(); + } else { + entity.setItem(remain); + } + return; + } + int remaining = stack.getCount(); + while (remaining > 0) { + int slot = -1; + ItemResource resource = null; + int limit = 0; + int existing = 0; + for (int i = 0; i < 8; i++) { + resource = handler.getResource(i); + if (!resource.isEmpty() && !resource.matches(stack)) continue; + limit = Math.min( + resource.isEmpty() ? Item.DEFAULT_MAX_STACK_SIZE : resource.getMaxStackSize(), + handler.getCapacityAsInt(slot, resource) + ); + existing = handler.getAmountAsInt(i); + if (existing >= limit) continue; + slot = i; + break; + } + if (slot < 0) return; + entity.discard(); + int storing = Math.min(remaining, limit - existing); + remaining -= storing; + modifier.set(slot, resource, existing + storing); + } + } + + /** + * 向鱼缸中放入物品 + * + * @param handler 鱼缸物品处理器 + * @param stack 要放入的物品 + * @return 剩余物品 + */ + public static ItemStack insertToTank(@Nullable ResourceHandler handler, ItemStack stack) { + if (handler == null) return stack; + if (stack.is(ModItemTags.DISALLOW_HAND_INSERT_INTO_TANK)) return stack; + int count = stack.getCount(); + ItemResource resource = ItemResource.of(stack); + try (Transaction root = Transaction.openRoot()) { + for (int i = 8; i < 16; i++) { + int inserted; + try (Transaction transaction = Transaction.open(root)) { + inserted = handler.insert(i, resource, count, transaction); + if (inserted == 0) continue; + } + handler.insert(i, resource, inserted, root); + count -= inserted; + if (count <= 0) { + root.commit(); + return stack.copyWithCount(count); + } + } + root.commit(); + } + return stack.copyWithCount(count); + } + + /** + * 从鱼缸中提取出所有物品 + * + * @param handler 鱼缸物品处理器 + * @param containsIngredient 是否同时提取原料;
+ * {@link TriState#DEFAULT DEFAULT}为始终提取,
+ * {@link TriState#TRUE TRUE}为仅在产物为空时提取,
+ * {@link TriState#FALSE FALSE}为不提取 + * @return 提取出的所有物品 + */ + public static @Unmodifiable List extractAllFromTank( + ResourceHandler handler, + TriState containsIngredient + ) { + List result = new ArrayList<>(); + try (Transaction root = Transaction.openRoot()) { + for (int i = 0; i < 8; i++) { + ItemResource resource = handler.getResource(i); + int maxSize = resource.getMaxStackSize(); + try (Transaction transaction = Transaction.open(root)) { + int extracted = handler.extract(i, resource, Integer.MAX_VALUE, transaction); + if (extracted == 0) continue; + if (extracted < maxSize) { + result.add(resource.toStack(extracted)); + transaction.commit(); + continue; + } + for (; extracted > 0; extracted -= maxSize) { + result.add(resource.toStack(Math.min(extracted, maxSize))); + } + } + } + root.commit(); + } + if (!containsIngredient.isFalse() && (containsIngredient.isDefault() || result.isEmpty())) { + try (Transaction root = Transaction.openRoot()) { + for (int i = 8; i < 16; i++) { + ItemResource resource = handler.getResource(i); + int maxSize = resource.getMaxStackSize(); + try (Transaction transaction = Transaction.open(root)) { + int extracted = handler.extract(i, resource, Integer.MAX_VALUE, transaction); + if (extracted == 0) continue; + if (extracted < maxSize) { + result.add(resource.toStack(extracted)); + transaction.commit(); + continue; + } + for (; extracted > 0; extracted -= maxSize) { + result.add(resource.toStack(Math.min(extracted, maxSize))); + } + } + } + root.commit(); + } + } + return ImmutableList.copyOf(result); + } + + public static boolean shouldIgnite(FluidStack cur) { + return cur.is(ModFluidTags.IGNITABLE); + } + + private static void popResource(Level level, BlockPos pos, Direction direction, ItemStack stack) { + int stepX = direction.getStepX(); + int stepZ = direction.getStepZ(); + double halfWidth = (double) EntityType.ITEM.getWidth() / 2.0; + double posX = (double) pos.getX() + 0.5 + + (stepX == 0 ? Mth.nextDouble(level.getRandom(), -0.25, 0.25) : (double) stepX * (0.5 + halfWidth)); + double posY = pos.getY() + 0.5; + double posZ = (double) pos.getZ() + 0.5 + + (stepZ == 0 ? Mth.nextDouble(level.getRandom(), -0.25, 0.25) : (double) stepZ * (0.5 + halfWidth)); + double deltaX = stepX == 0 ? Mth.nextDouble(level.getRandom(), -0.1, 0.1) : (double) stepX * 0.1; + double deltaY = Mth.nextDouble(level.getRandom(), 0.0, 0.1); + double deltaZ = stepZ == 0 ? Mth.nextDouble(level.getRandom(), -0.1, 0.1) : (double) stepZ * 0.1; + ItemEntity entity = new ItemEntity(level, posX, posY, posZ, stack, deltaX, deltaY, deltaZ); + entity.setDefaultPickUpDelay(); + level.addFreshEntity(entity); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/FluidTankBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/FluidTankBlockEntity.java index 0b159e1914..33fd61a115 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/FluidTankBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/FluidTankBlockEntity.java @@ -1,27 +1,33 @@ package dev.dubhe.anvilcraft.block.entity; import dev.dubhe.anvilcraft.api.fluid.IFluidHandlerHolder; +import dev.dubhe.anvilcraft.api.fluidtank.CapacityModifiableFluidHandler; +import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.util.ProblemReporter; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; 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.neoforged.neoforge.fluids.FluidType; -import net.neoforged.neoforge.fluids.FluidUtil; -import net.neoforged.neoforge.fluids.IFluidTank; -import net.neoforged.neoforge.fluids.capability.IFluidHandler; -import net.neoforged.neoforge.fluids.capability.templates.FluidTank; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidResource; +import net.neoforged.neoforge.transfer.fluid.FluidUtil; public class FluidTankBlockEntity extends BlockEntity implements IFluidHandlerHolder { public static final int CAPACITY = 16 * FluidType.BUCKET_VOLUME; public static final int BIG_CAPACITY = 640 * FluidType.BUCKET_VOLUME; - protected final FluidTank tank = new FluidTank(CAPACITY); + @Getter + protected final CapacityModifiableFluidHandler tank = new CapacityModifiableFluidHandler(1, FluidTankBlockEntity.CAPACITY); protected boolean isBigger = false; public FluidTankBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { @@ -39,34 +45,31 @@ public void onUnformed() { } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putBoolean("bigger", this.isBigger); - CompoundTag tankNbt = tank.writeToNBT(provider, new CompoundTag()); - if (!tankNbt.isEmpty()) { - tag.put("tank", tankNbt); - } + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putBoolean("bigger", this.isBigger); + this.tank.serialize(output); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - this.isBigger = tag.getBoolean("bigger"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.isBigger = input.getBooleanOr("bigger", false); if (this.isBigger) { this.onFormed(); } else { this.onUnformed(); } - tank.readFromNBT(provider, tag.getCompound("tank")); + this.tank.deserialize(input); } @Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { CompoundTag tag = super.getUpdateTag(registries); tag.putBoolean("bigger", this.isBigger); - CompoundTag fluidTag = new CompoundTag(); - tank.writeToNBT(registries, fluidTag); - tag.put("tank", fluidTag); + TagValueOutput valueOutput = TagValueOutput.createWithContext(ProblemReporter.DISCARDING, registries); + this.tank.serialize(valueOutput); + tag.store("tank", CompoundTag.CODEC, valueOutput.buildResult()); return tag; } @@ -76,14 +79,11 @@ public Packet getUpdatePacket() { } public boolean onPlayerUse(Player player, InteractionHand hand) { - return FluidUtil.interactWithFluidHandler(player, hand, tank); + return FluidUtil.interactWithFluidHandler(player, hand, worldPosition, this.tank); } - public IFluidTank getTank() { - return tank; - } - - public IFluidHandler getFluidHandler() { - return tank; + @Override + public ResourceHandler getFluidHandler() { + return this.tank; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/HasMobBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/HasMobBlockEntity.java index 3d529fa2b8..cdf7d87e94 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/HasMobBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/HasMobBlockEntity.java @@ -2,26 +2,31 @@ import dev.dubhe.anvilcraft.init.item.ModComponents; import dev.dubhe.anvilcraft.item.property.component.SavedEntity; +import lombok.extern.slf4j.Slf4j; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentGetter; import net.minecraft.core.component.DataComponentMap; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.Mob; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.attachment.AttachmentType; +import org.jspecify.annotations.Nullable; import java.util.Optional; +import java.util.function.Supplier; +@Slf4j public abstract class HasMobBlockEntity extends BlockEntity { - private CompoundTag entity = null; + private @Nullable SavedEntity entity = null; private Entity displayEntity = null; protected HasMobBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { @@ -33,37 +38,26 @@ protected HasMobBlockEntity(BlockEntityType type, BlockPos pos, BlockState bl */ public void setEntity(@Nullable Entity entity) { if (entity == null) return; - if (this.entity == null) this.entity = new CompoundTag(); - entity.save(this.entity); - this.entity.remove(Entity.UUID_TAG); - } - - /** - * 设置实体 - */ - public void setEntity(@Nullable CompoundTag entity) { - if (entity == null) return; - this.entity = entity; - this.entity.remove(Entity.UUID_TAG); + this.entity = SavedEntity.fromEntity(entity); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); if (this.entity != null) { - tag.put("entity", this.entity); + output.store("entity", SavedEntity.CODEC, this.entity); } } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - if (tag.contains("entity")) { - this.entity = tag.getCompound("entity"); - if (this.level != null) { - this.getEntity(this.level); - } + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + Optional entity = input.read("entity", SavedEntity.CODEC); + if (entity.isEmpty()) return; + this.entity = entity.get(); + if (this.level != null) { + this.getEntity(this.level); } - super.loadAdditional(tag, provider); } @Override @@ -86,40 +80,44 @@ public Entity getOrCreateDisplayEntity(Level level) { } private void getEntity(Level level) { - if (this.entity == null) return; - Optional> optional = EntityType.by(this.entity); - if (optional.isEmpty()) return; - EntityType type = optional.get(); - Entity entity = type.create(level); + Entity entity; + if (this.entity == null) { + entity = this.createDefaultEntity(level); + this.entity = SavedEntity.fromEntity(entity); + } else { + entity = this.entity.toEntity(level); + } if (entity == null) return; - entity.load(this.entity); entity.setYRot(0); this.displayEntity = entity; this.displayEntity.noPhysics = true; } + protected abstract @Nullable Entity createDefaultEntity(Level level); + @Override - protected void applyImplicitComponents(DataComponentInput componentInput) { - super.applyImplicitComponents(componentInput); - SavedEntity savedEntity = componentInput.get(ModComponents.SAVED_ENTITY); - if (savedEntity == null) return; - this.setEntity(savedEntity.tag()); + protected void applyImplicitComponents(DataComponentGetter components) { + super.applyImplicitComponents(components); + SavedEntity entity = components.get(ModComponents.SAVED_ENTITY); + if (entity == null) return; + this.entity = entity; } @Override protected void collectImplicitComponents(DataComponentMap.Builder components) { super.collectImplicitComponents(components); - if (this.displayEntity == null && this.level != null) { - this.getEntity(this.level); - } - if (!(this.displayEntity instanceof Mob mob)) return; - components.set(ModComponents.SAVED_ENTITY, SavedEntity.fromMob(mob)); + components.set(ModComponents.SAVED_ENTITY, this.entity); } @Override @SuppressWarnings("deprecation") - public void removeComponentsFromTag(CompoundTag tag) { - super.removeComponentsFromTag(tag); - tag.remove("entity"); + public void removeComponentsFromTag(ValueOutput output) { + super.removeComponentsFromTag(output); + output.discard("entity"); + } + + @Override + public @Nullable T removeData(Supplier> type) { + return super.removeData(type); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/HeatCollectorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/HeatCollectorBlockEntity.java index 19372f3124..70baf6f8b4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/HeatCollectorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/HeatCollectorBlockEntity.java @@ -4,19 +4,19 @@ import dev.dubhe.anvilcraft.api.power.IPowerProducer; import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.api.tooltip.providers.IHasAffectRange; -import dev.dubhe.anvilcraft.block.HeatCollectorBlock; +import dev.dubhe.anvilcraft.block.power.generator.HeatCollectorBlock; import dev.dubhe.anvilcraft.util.TriggerUtil; import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class HeatCollectorBlockEntity extends BlockEntity implements IPowerProducer, IHasAffectRange { public static final int MAX_OUTPUT_POWER = 4096; @@ -48,27 +48,27 @@ public int getRange() { } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putInt("tickCache", this.time); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("tickCache", this.time); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.time = tag.getInt("tickCache"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.time = input.getIntOr("tickCache", 0); } @Override public void gridTick() { - if (!this.isWorking() || level == null || level.isClientSide()) return; + if (!this.isWorking() || this.level == null || this.level.isClientSide()) return; int oldPower = this.outputPower; this.outputPower = this.inputtingPower; if (this.outputPower > 0 && this.getBlockState().getBlock() instanceof HeatCollectorBlock collector) { collector.activate(this.level, this.getBlockPos(), this.getBlockState()); TriggerUtil.heatCollectorOutput(this.level, this.getBlockPos(), this.outputPower); } - if (this.outputPower != oldPower && grid != null) grid.markChanged(); + if (this.outputPower != oldPower && this.grid != null) this.grid.markChanged(); this.inputtingPower = 0; this.time++; } @@ -96,7 +96,7 @@ public void setRemoved() { public void clientTick() { if (!this.isWorking()) return; - rotation += (float) (Math.log(getServerPower() + 1) * 2.5); + this.rotation += (float) (Math.log(getServerPower() + 1) * 2.5); } public boolean isWorking() { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/HeaterBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/HeaterBlockEntity.java index 153a11e7b8..2b646fb878 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/HeaterBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/HeaterBlockEntity.java @@ -11,7 +11,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Objects; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/HeliostatsBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/HeliostatsBlockEntity.java index 8292dfd2c8..a2a46d5163 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/HeliostatsBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/HeliostatsBlockEntity.java @@ -6,24 +6,25 @@ import dev.dubhe.anvilcraft.init.ModHeaterInfos; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.network.HeliostatsIrradiationPacket; +import dev.dubhe.anvilcraft.util.Util; import lombok.Getter; import lombok.Setter; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.block.HalfTransparentBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.client.network.ClientPacketDistributor; import org.joml.Vector3f; +import org.jspecify.annotations.Nullable; import java.util.Objects; @@ -51,28 +52,28 @@ public HeliostatsBlockEntity(BlockEntityType type, BlockPos pos, BlockState b } private Vec3 getSurfaceVec3(Vec3 vec31, Vec3 vec32) { - if (vec31.hashCode() + vec32.hashCode() == surfaceVec3Hash) return surfaceVec3; + if (vec31.hashCode() + vec32.hashCode() == this.surfaceVec3Hash) return this.surfaceVec3; if (level == null) return vec31; - if (!level.getBlockState(irritatePos.north()).isAir() - && !level.getBlockState(irritatePos.south()).isAir() - && !level.getBlockState(irritatePos.east()).isAir() - && !level.getBlockState(irritatePos.west()).isAir()) { + if (!level.getBlockState(this.irritatePos.north()).isAir() + && !level.getBlockState(this.irritatePos.south()).isAir() + && !level.getBlockState(this.irritatePos.east()).isAir() + && !level.getBlockState(this.irritatePos.west()).isAir()) { return vec31.add(0, 0, 0); } Vec2 vec2 = new Vec2((float) (vec32.z - vec31.z), (float) (vec32.x - vec31.x)); - if (vec2.x == 0) return vec31.add(vec2.y > 0 ? 0.49f : -0.49f, 0, 0); - if (vec2.y == 0) return vec31.add(0, 0, vec2.x > 0 ? 0.49f : -0.49f); + if (vec2.x == 0) return vec31.add(vec2.y > 0 ? 0.49F : -0.49F, 0, 0); + if (vec2.y == 0) return vec31.add(0, 0, vec2.x > 0 ? 0.49F : -0.49F); float k = vec2.y / vec2.x; - float x = vec2.x > 0 ? 0.49f : -0.49f; - float y = vec2.y > 0 ? 0.49f : -0.49f; + float x = vec2.x > 0 ? 0.49F : -0.49F; + float y = vec2.y > 0 ? 0.49F : -0.49F; if (y / k < 0.5 && y / k > -0.5) { return vec31.add(y, 0, y / k); } if (k * x < 0.5 && k * x > -0.5) { return vec31.add(k * x, 0, x); } - surfaceVec3Hash = vec31.hashCode() + vec32.hashCode(); - surfaceVec3 = vec31; + this.surfaceVec3Hash = vec31.hashCode() + vec32.hashCode(); + this.surfaceVec3 = vec31; return vec31; } @@ -80,15 +81,15 @@ private Vec3 getSurfaceVec3(Vec3 vec31, Vec3 vec32) { * 设置照射坐标 */ public boolean setIrritatePos(BlockPos pos) { - irritatePos = pos; + this.irritatePos = pos; this.setChanged(); - return validatePos(pos).isWorking(); + return this.validatePos(pos).isWorking(); } private WorkResult validatePos(@Nullable BlockPos irritatePos) { - normalVector3f = new Vector3f(); + this.normalVector3f = new Vector3f(); if (level == null) return WorkResult.UNKNOWN; - if (level.isClientSide && Minecraft.getInstance().player == null) return WorkResult.UNKNOWN; + if (level.isClientSide() && Minecraft.getInstance().player == null) return WorkResult.UNKNOWN; if (irritatePos == null) return WorkResult.UNSPECIFIED_IRRADIATION_BLOCK; if (getBlockPos().getCenter().distanceTo(irritatePos.getCenter()) > 64) { return WorkResult.TOO_FAR; @@ -120,50 +121,51 @@ private WorkResult validatePos(@Nullable BlockPos irritatePos) { return WorkResult.NO_SUN; } Vec3 irritateVec3 = - getSurfaceVec3(irritatePos.getCenter(), getBlockPos().getCenter()); + this.getSurfaceVec3(irritatePos.getCenter(), getBlockPos().getCenter()); BlockHitResult blockHitResult = level.clip(new ClipContext( - getBlockPos().getCenter().add(0f, 1.376f, 0f), + getBlockPos().getCenter().add(0F, 1.376F, 0F), irritateVec3, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, - level.isClientSide + level.isClientSide() ? Objects.requireNonNull(Minecraft.getInstance().player) : AnvilCraftFakePlayers.anvilcraftBlockPlacer.getPlayer()) ); if (!blockHitResult.getBlockPos().equals(irritatePos)) { return WorkResult.OBSCURED; } - double sunAngle = level.getSunAngle(1); - sunAngle = sunAngle <= Math.PI / 2 * 3 ? sunAngle + Math.PI / 2 : sunAngle - Math.PI / 2 * 3; + double sunAngle = Util.getSunAngle(level, this.worldPosition.getBottomCenter()); + sunAngle = sunAngle <= Math.PI / 2 * 3 ? (sunAngle + Math.PI / 2) : (sunAngle - Math.PI / 2 * 3); if (sunAngle > Math.PI) return WorkResult.NO_SUN; Vector3f sunVector3f = new Vector3f((float) Math.cos(sunAngle), (float) Math.sin(sunAngle), 0).normalize(); - irritateVector3f = new Vector3f( + this.irritateVector3f = new Vector3f( (float) (irritateVec3.x - getBlockPos().getX()), (float) (irritateVec3.y - getBlockPos().getY()), (float) (irritateVec3.z - getBlockPos().getZ()) ).normalize(); - normalVector3f = sunVector3f.add(irritateVector3f).div(2); - if (normalVector3f.y < 0) { + this.normalVector3f = sunVector3f.add(this.irritateVector3f).div(2); + if (this.normalVector3f.y < 0) { return WorkResult.NO_ROTATION_ANGLE; } return WorkResult.SUCCESS; } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - if (irritatePos == null) return; - tag.putInt("Ix", irritatePos.getX()); - tag.putInt("Iy", irritatePos.getY()); - tag.putInt("Iz", irritatePos.getZ()); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("Ix", this.irritatePos.getX()); + output.putInt("Iy", this.irritatePos.getY()); + output.putInt("Iz", this.irritatePos.getZ()); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - if (!tag.contains("Ix")) return; - int x = tag.getInt("Ix"); - int y = tag.getInt("Iy"); - int z = tag.getInt("Iz"); - irritatePos = new BlockPos(x, y, z); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + if (input.getInt("Ix").isEmpty()) return; + int x = input.getIntOr("Ix", 0); + int y = input.getIntOr("Iy", 0); + int z = input.getIntOr("Iz", 0); + this.irritatePos = new BlockPos(x, y, z); } /** @@ -172,11 +174,11 @@ public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { public void tick() { if (level == null) return; if (level.getGameTime() % (AnvilCraft.CONFIG.heliostatsDetectionInterval + 1) != 0) return; - if (irritatePos == null && level.isClientSide) { - PacketDistributor.sendToServer(new HeliostatsIrradiationPacket(getBlockPos(), irritatePos)); + if (this.irritatePos == null && level.isClientSide()) { + ClientPacketDistributor.sendToServer(new HeliostatsIrradiationPacket(getBlockPos(), this.irritatePos)); } - workResult = validatePos(irritatePos); - if (workResult.isWorking()) { + this.workResult = this.validatePos(this.irritatePos); + if (this.workResult.isWorking()) { HeaterManager.addProducer(getBlockPos(), Objects.requireNonNull(getLevel()), ModHeaterInfos.HELIOSTATS); } else { HeaterManager.removeProducer(getBlockPos(), Objects.requireNonNull(getLevel()), ModHeaterInfos.HELIOSTATS); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/InductionLightBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/InductionLightBlockEntity.java index 736a946904..88a5c6f9ab 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/InductionLightBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/InductionLightBlockEntity.java @@ -6,7 +6,7 @@ import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.api.tooltip.providers.IHasAffectRange; -import dev.dubhe.anvilcraft.block.InductionLightBlock; +import dev.dubhe.anvilcraft.block.power.consumer.InductionLightBlock; import dev.dubhe.anvilcraft.util.AabbUtil; import lombok.AccessLevel; import lombok.Getter; @@ -18,7 +18,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; @Setter @Getter diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemCollectorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemCollectorBlockEntity.java index 9fae5aacdd..00d2a15ac6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemCollectorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemCollectorBlockEntity.java @@ -2,25 +2,26 @@ import dev.dubhe.anvilcraft.api.item.IDiskCloneable; import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.api.tooltip.providers.IHasAffectRange; -import dev.dubhe.anvilcraft.block.ItemCollectorBlock; +import dev.dubhe.anvilcraft.block.power.consumer.ItemCollectorBlock; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.inventory.ItemCollectorMenu; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; import dev.dubhe.anvilcraft.util.WatchableCyclingValue; import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; -import net.minecraft.core.RegistryAccess; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ProblemReporter; import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.item.ItemEntity; @@ -33,9 +34,12 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; 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.AABB; import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.HashMap; @@ -50,21 +54,22 @@ public class ItemCollectorBlockEntity extends BlockEntity IPowerConsumer, IDiskCloneable, IHasAffectRange, - IItemHandlerHolder { + IItemResourceHandlerHolder { @Setter private PowerGrid grid; private final WatchableCyclingValue rangeRadius = new WatchableCyclingValue<>( - "rangeRadius", thiz -> this.setChanged(), + "rangeRadius", _ -> this.setChanged(), 1, 2, 4, 8 ); + private final WatchableCyclingValue cooldown = new WatchableCyclingValue<>( "cooldown", thiz -> { - cd = thiz.get(); + this.cd = thiz.get(); this.setChanged(); }, 0, @@ -72,7 +77,7 @@ public class ItemCollectorBlockEntity extends BlockEntity 10, 60 ); - private int cd = cooldown.next(); + private int cd = this.cooldown.next(); public static final Map>> POACHING_COLLECTOR_MAP = new HashMap<>(); @@ -80,15 +85,15 @@ public class ItemCollectorBlockEntity extends BlockEntity private final FilteredItemStackHandler itemHandler = new FilteredItemStackHandler(9) { @Override - public void onContentsChanged(int slot) { - if (level == null || level.isClientSide || changed) return; - changed = true; + protected void onContentsChanged(int index, ItemStack previousContents) { + if (level == null || level.isClientSide() || ItemCollectorBlockEntity.this.changed) return; + ItemCollectorBlockEntity.this.changed = true; Objects.requireNonNull(level.getServer()).execute(() -> { try { setChanged(); flushState(level, getBlockPos()); } finally { - changed = false; + ItemCollectorBlockEntity.this.changed = false; } }); } @@ -137,21 +142,21 @@ public Component getDisplayName() { } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - this.itemHandler.deserializeNBT(provider, tag.getCompound("Inventory")); - this.cooldown.fromIndex(tag.getInt("Cooldown")); - this.rangeRadius.fromIndex(tag.getInt("RangeRadius")); - this.cd = tag.getInt("cd"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.itemHandler.deserialize(input.childOrEmpty("Inventory")); + this.cooldown.fromIndex(input.getIntOr("Cooldown", 0)); + this.rangeRadius.fromIndex(input.getIntOr("RangeRadius", 0)); + this.cd = input.getIntOr("cd", 0); } @Override - public void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.put("Inventory", this.itemHandler.serializeNBT(provider)); - tag.putInt("Cooldown", this.cooldown.index()); - tag.putInt("RangeRadius", this.rangeRadius.index()); - tag.putInt("cd", this.cd); + public void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + this.itemHandler.serialize(output.child("Inventory")); + output.putInt("Cooldown", this.cooldown.index()); + output.putInt("RangeRadius", this.rangeRadius.index()); + output.putInt("cd", this.cd); } @Nullable @@ -168,12 +173,10 @@ public Packet getUpdatePacket() { } @Override - public CompoundTag getUpdateTag(HolderLookup.Provider provider) { - CompoundTag tag = new CompoundTag(); - tag.put("Inventory", this.itemHandler.serializeNBT(provider)); - tag.putInt("Cooldown", this.cooldown.index()); - tag.putInt("RangeRadius", this.rangeRadius.index()); - return tag; + public CompoundTag getUpdateTag(HolderLookup.Provider registries) { + TagValueOutput output = TagValueOutput.createWithContext(new ProblemReporter.Collector(this.problemPath()), registries); + this.saveAdditional(output); + return output.buildResult(); } public List getPoachingMapPositions(int range) { @@ -197,10 +200,10 @@ public List getPoachingMapPositions(int range) { } public void updatePoachingMapForThis() { - List chunkPosListMax = getPoachingMapPositions(8); - List chunkPosListReal = getPoachingMapPositions(rangeRadius.get()); + List chunkPosListMax = this.getPoachingMapPositions(8); + List chunkPosListReal = this.getPoachingMapPositions(this.rangeRadius.get()); for (ChunkPos chunkPos : chunkPosListMax) { - if (cooldown.get() == 0 && chunkPosListReal.contains(chunkPos)) { + if (this.cooldown.get() == 0 && chunkPosListReal.contains(chunkPos)) { if (!POACHING_COLLECTOR_MAP.containsKey(level)) POACHING_COLLECTOR_MAP.put(level, new HashMap<>()); if (!POACHING_COLLECTOR_MAP.get(level).containsKey(chunkPos)) { POACHING_COLLECTOR_MAP.get(level).put(chunkPos, new ArrayList<>()); @@ -219,13 +222,13 @@ public void updatePoachingMapForThis() { @Override public void gridTick() { - if (level == null || level.isClientSide) return; + if (level == null || level.isClientSide()) return; this.updatePoachingMapForThis(); // 如果保持“截胡模式就不再主动吸取物品”的设定就把下面一行取消注释回来 // if (cooldown.get() == 0) return; - if (cd > 1) { - cd--; + if (this.cd > 1) { + this.cd--; return; } if (!this.isGridWorking()) return; @@ -242,7 +245,7 @@ public void gridTick() { ItemStack itemStack = itemEntity.getItem(); int slotIndex = 0; while (itemStack != ItemStack.EMPTY && slotIndex < 9) { - itemStack = itemHandler.insertItem(slotIndex++, itemStack, false); + itemStack = ItemResourceHelper.insertInto(this.itemHandler, slotIndex++, itemStack); } if (itemStack != ItemStack.EMPTY) { itemEntity.setItem(itemStack); @@ -266,32 +269,29 @@ public void tick(Level level, BlockPos blockPos) { */ public int getRedstoneSignal() { int i = 0; - for (int j = 0; j < this.itemHandler.getSlots(); ++j) { - ItemStack itemStack = this.itemHandler.getStackInSlot(j); - if (itemStack.isEmpty() && !this.itemHandler.isSlotDisabled(j)) continue; + for (int j = 0; j < this.itemHandler.size(); ++j) { + if (ItemResourceHelper.isSlotEmpty(this.itemHandler, j) && !this.itemHandler.isSlotDisabled(j)) continue; ++i; } return i; } @Override - public void storeDiskData(CompoundTag tag) { + public void storeDiskData(ValueOutput output) { if (this.level == null) return; - RegistryAccess provider = this.level.registryAccess(); - tag.put("Inventory", this.itemHandler.serializeNBT(provider)); - tag.putInt("Cooldown", this.cooldown.index()); - tag.putInt("RangeRadius", this.rangeRadius.index()); - tag.putInt("cd", this.cd); + this.itemHandler.serialize(output.child("Inventory")); + output.putInt("Cooldown", this.cooldown.index()); + output.putInt("RangeRadius", this.rangeRadius.index()); + output.putInt("cd", this.cd); } @Override - public void applyDiskData(CompoundTag tag) { + public void applyDiskData(ValueInput input) { if (this.level == null) return; - RegistryAccess provider = this.level.registryAccess(); - this.itemHandler.deserializeNBT(provider, tag.getCompound("Inventory")); - this.cooldown.fromIndex(tag.getInt("Cooldown")); - this.rangeRadius.fromIndex(tag.getInt("RangeRadius")); - this.cd = tag.getInt("cd"); + this.itemHandler.deserialize(input.childOrEmpty("Inventory")); + this.cooldown.fromIndex(input.getIntOr("Cooldown", 0)); + this.rangeRadius.fromIndex(input.getIntOr("RangeRadius", 0)); + this.cd = input.getIntOr("cd", 0); this.setChanged(); Vec3 center = this.getPos().getCenter(); MinecraftServer server = level.getServer(); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemDetectorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemDetectorBlockEntity.java index ab3935b17a..8509886e4f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemDetectorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ItemDetectorBlockEntity.java @@ -3,13 +3,14 @@ import dev.dubhe.anvilcraft.api.item.IDiskCloneable; import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; import dev.dubhe.anvilcraft.api.tooltip.providers.IHasAffectRange; -import dev.dubhe.anvilcraft.block.ItemDetectorBlock; +import dev.dubhe.anvilcraft.block.utility.redstone.ItemDetectorBlock; import dev.dubhe.anvilcraft.constant.SharedTextures; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.inventory.ItemDetectorMenu; import dev.dubhe.anvilcraft.inventory.container.FilterOnlyContainer; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -20,7 +21,7 @@ import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.Mth; import net.minecraft.world.MenuProvider; @@ -35,16 +36,17 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.neoforged.neoforge.capabilities.Capabilities; -import net.neoforged.neoforge.items.IItemHandler; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Optional; -import static dev.dubhe.anvilcraft.block.ItemDetectorBlock.POWERED; - public class ItemDetectorBlockEntity extends BlockEntity implements MenuProvider, IFilterBlockEntity, IHasAffectRange, IDiskCloneable { @@ -118,22 +120,27 @@ private static int lerpOutput(int matchCount, int targetCount) { } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.setRange(tag.getInt("Range")); - if (tag.contains("FilterMode")) this.filterMode = Mode.valueOf(tag.getString("FilterMode")); - if (tag.contains("Filter")) filter.deserializeNBT(registries, tag.getCompound("Filter")); - if (tag.contains("OutputSignal")) this.outputSignal = tag.getInt("OutputSignal"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.setRange(input.getIntOr("Range", 0)); + if (input.getInt("FilterMode").isPresent()) { + this.filterMode = Mode.valueOf(input.getStringOr("FilterMode", "")); + } + input.child("Filter").ifPresent(this.filter::deserialize); + if (input.getInt("OutputSignal").isPresent()) { + this.outputSignal = input.getIntOr("OutputSignal", 0); + } this.recalcDetectionRange(); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putInt("Range", this.range); - tag.putString("FilterMode", this.filterMode.toString()); - tag.put("Filter", this.filter.serializeNBT(registries)); - tag.putInt("OutputSignal", this.outputSignal); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("Range", this.range); + output.putString("FilterMode", this.filterMode.toString()); + ValueOutput child = output.child("Filter"); + this.filter.serialize(child); + output.putInt("OutputSignal", this.outputSignal); } @Override @@ -147,7 +154,7 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registries) { public void tick() { Level level = this.level; - if (level == null || level.isClientSide) return; + if (level == null || level.isClientSide()) return; if (this.detectionRange == null) { this.recalcDetectionRange(); if (this.detectionRange == null) return; @@ -160,11 +167,11 @@ public void tick() { this.detectionRange, entity -> !entity.getItem().isEmpty() ); - int output = getOutput(itemEntities, level, this.detectionRange); + int output = this.getOutput(itemEntities, level, this.detectionRange); if (output == this.outputSignal) return; this.outputSignal = output; - if (blockState.getValue(POWERED) != (this.outputSignal > 0)) { - blockState = blockState.setValue(POWERED, this.outputSignal > 0); + if (blockState.getValue(ItemDetectorBlock.POWERED) != (this.outputSignal > 0)) { + blockState = blockState.setValue(ItemDetectorBlock.POWERED, this.outputSignal > 0); level.setBlock(pos, blockState, 2); } ModBlocks.ITEM_DETECTOR.get().updateNeighborsInFront(level, pos, blockState); @@ -189,7 +196,7 @@ private int getOutput(List itemEntities, Level level, AABB aabb) { matchCount += itemEntity.getItem().getCount(); } } - for (BlockPos p : blocksInRange) matchCount += scanContainer(level, p, filterItem); + for (BlockPos p : blocksInRange) matchCount += this.scanContainer(level, p, filterItem); int lerpedOutput = lerpOutput(matchCount, targetCount); if (lerpedOutput > 0) { minNonZeroOutput = Math.min(minNonZeroOutput, lerpedOutput); @@ -202,18 +209,18 @@ private int getOutput(List itemEntities, Level level, AABB aabb) { if (!hasFilter) { int totalCount = 0; for (ItemEntity itemEntity : itemEntities) totalCount += itemEntity.getItem().getCount(); - for (BlockPos p : blocksInRange) totalCount += scanContainer(level, p, null); + for (BlockPos p : blocksInRange) totalCount += this.scanContainer(level, p, null); output = lerpOutput(totalCount, 1); } return output; } private int scanContainer(Level level, BlockPos pos, @Nullable Item targetItem) { - IItemHandler handler = level.getCapability(Capabilities.ItemHandler.BLOCK, pos, null); + ResourceHandler handler = level.getCapability(Capabilities.Item.BLOCK, pos, null); if (handler == null) return 0; int count = 0; - for (int i = 0; i < handler.getSlots(); i++) { - ItemStack stack = handler.getStackInSlot(i); + for (int i = 0; i < handler.size(); i++) { + ItemStack stack = ItemResourceHelper.getStackInSlot(handler, i); if (stack.isEmpty()) continue; if (targetItem == null || stack.is(targetItem)) count += stack.getCount(); } @@ -227,11 +234,11 @@ public void setFilterMode(Mode filterMode) { } public void increaseRange() { - this.range = Mth.clamp(range + 1, MIN_RANGE, MAX_RANGE); + this.range = Mth.clamp(this.range + 1, MIN_RANGE, MAX_RANGE); } public void decreaseRange() { - this.range = Mth.clamp(range - 1, MIN_RANGE, MAX_RANGE); + this.range = Mth.clamp(this.range - 1, MIN_RANGE, MAX_RANGE); } public void setRange(int range) { @@ -334,19 +341,21 @@ public Packet getUpdatePacket() { } @Override - public void storeDiskData(CompoundTag data) { + public void storeDiskData(ValueOutput output) { if (this.level == null) return; - data.putInt("Range", this.range); - data.putString("FilterMode", this.filterMode.toString()); - data.put("Filter", this.filter.serializeNBT(this.level.registryAccess())); + output.putInt("Range", this.range); + output.putString("FilterMode", this.filterMode.toString()); + ValueOutput child = output.child("Filter"); + this.filter.serialize(child); } @Override - public void applyDiskData(CompoundTag data) { + public void applyDiskData(ValueInput input) { if (this.level == null) return; - this.setRange(data.getInt("Range")); - this.filterMode = Mode.valueOf(data.getString("FilterMode")); - filter.deserializeNBT(this.level.registryAccess(), data.getCompound("Filter")); + this.setRange(input.getIntOr("Range", 0)); + this.filterMode = Mode.valueOf(input.getStringOr("FilterMode", "")); + ValueInput filter1 = input.childOrEmpty("Filter"); + this.filter.deserialize(filter1); this.recalcDetectionRange(); } @@ -354,9 +363,9 @@ public enum Mode { ANY(SharedTextures.BUTTON_ANY), ALL(SharedTextures.BUTTON_ALL); - public final ResourceLocation buttonTexture; + public final Identifier buttonTexture; - Mode(ResourceLocation buttonTexture) { + Mode(Identifier buttonTexture) { this.buttonTexture = buttonTexture; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/LargeFluidTankBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/LargeFluidTankBlockEntity.java index fcce801bb6..3928a52948 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/LargeFluidTankBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/LargeFluidTankBlockEntity.java @@ -2,30 +2,34 @@ import dev.dubhe.anvilcraft.api.fluid.IFluidHandlerHolder; import dev.dubhe.anvilcraft.api.fluidtank.InfinityFluidTank; -import dev.dubhe.anvilcraft.block.LargeFluidTankBlock; +import dev.dubhe.anvilcraft.block.container.LargeFluidTankBlock; import dev.dubhe.anvilcraft.block.state.Cube3x3PartHalf; -import dev.dubhe.anvilcraft.init.block.ModBlocks; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.util.ProblemReporter; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; 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.neoforged.neoforge.fluids.FluidType; -import net.neoforged.neoforge.fluids.FluidUtil; -import net.neoforged.neoforge.fluids.IFluidTank; -import net.neoforged.neoforge.fluids.capability.IFluidHandler; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidResource; +import net.neoforged.neoforge.transfer.fluid.FluidStacksResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidUtil; public class LargeFluidTankBlockEntity extends BlockEntity implements IFluidHandlerHolder { public static final int CAPACITY = 320 * FluidType.BUCKET_VOLUME; public static final int BIG_CAPACITY = 12800 * FluidType.BUCKET_VOLUME; protected final InfinityFluidTank tank = new InfinityFluidTank(CAPACITY, false); - protected boolean isBigger = false; + protected boolean bigger = false; public LargeFluidTankBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); @@ -39,49 +43,50 @@ public void tick() { } protected void checkInfinity() { - if (this.tank.getCapacity() == LargeFluidTankBlockEntity.BIG_CAPACITY && this.tank.getSpace() <= 0) this.tank.setInfinity(true); + FluidResource resource = this.tank.getResource(0); + int capacity = this.tank.getCapacityAsInt(0, resource); + if (capacity != LargeFluidTankBlockEntity.BIG_CAPACITY) return; + if (capacity - this.tank.getAmountAsInt(0) > 0) return; + this.tank.setInfinity(true); } public void onFormed() { - this.isBigger = true; + this.bigger = true; this.tank.setCapacity(BIG_CAPACITY); } public void onUnformed() { - this.isBigger = false; + this.bigger = false; this.tank.setInfinity(false); this.tank.setCapacity(CAPACITY); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putBoolean("bigger", this.isBigger); - CompoundTag tankNbt = tank.writeToNBT(provider, new CompoundTag()); - if (!tankNbt.isEmpty()) { - tag.put("tank", tankNbt); - } + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putBoolean("bigger", this.bigger); + this.tank.serialize(output.child("tank")); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - this.isBigger = tag.getBoolean("bigger"); - if (this.isBigger) { + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.tank.deserialize(input.childOrEmpty("tank")); + this.bigger = input.getBooleanOr("bigger", false); + if (this.bigger) { this.onFormed(); } else { this.onUnformed(); } - tank.readFromNBT(provider, tag.getCompound("tank")); } @Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { CompoundTag tag = super.getUpdateTag(registries); - tag.putBoolean("bigger", this.isBigger); - CompoundTag fluidTag = new CompoundTag(); - tank.writeToNBT(registries, fluidTag); - tag.put("tank", fluidTag); + tag.putBoolean("bigger", this.bigger); + TagValueOutput fluidTag = TagValueOutput.createWithContext(new ProblemReporter.Collector(this.problemPath()), registries); + this.tank.serialize(fluidTag); + tag.put("tank", fluidTag.buildResult()); return tag; } @@ -92,27 +97,14 @@ public Packet getUpdatePacket() { public boolean onPlayerUse(Player player, InteractionHand hand) { this.checkInfinity(); - return FluidUtil.interactWithFluidHandler(player, hand, this.getFluidHandler()); - } - - public IFluidTank getTank() { - return getMainPart().tank; - } - - public IFluidHandler getFluidHandler() { - return getMainPart().tank; + return FluidUtil.interactWithFluidHandler(player, hand, this.getBlockPos(), this.getFluidHandler()); } - public boolean isMainPart() { - LargeFluidTankBlock block = ModBlocks.LARGE_FLUID_TANK.get(); - return block.isMainPart(this.getBlockState()); + public FluidStacksResourceHandler getTank() { + return this.tank; } - public LargeFluidTankBlockEntity getMainPart() { - LargeFluidTankBlock block = ModBlocks.LARGE_FLUID_TANK.get(); - BlockPos mainPartPos = block.getMainPartPos(this.getBlockPos(), this.getBlockState()); - if (this.getLevel() == null) return this; - BlockEntity mainPart = this.getLevel().getBlockEntity(mainPartPos); - return mainPart instanceof LargeFluidTankBlockEntity ? (LargeFluidTankBlockEntity) mainPart : this; + public ResourceHandler getFluidHandler() { + return this.tank; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/LaserReceiverBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/LaserReceiverBlockEntity.java index 560346cd71..c74f35efb9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/LaserReceiverBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/LaserReceiverBlockEntity.java @@ -2,7 +2,7 @@ import dev.dubhe.anvilcraft.api.power.IPowerProducer; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.LaserReceiverBlock; +import dev.dubhe.anvilcraft.block.laser.LaserReceiverBlock; import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; @@ -10,7 +10,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Set; @@ -29,7 +29,7 @@ public LaserReceiverBlockEntity(BlockEntityType type, BlockPos pos, BlockStat @Override public int getOutputPower() { - return Math.min((int) Math.floor(efficiency), power); + return Math.min((int) Math.floor(this.efficiency), this.power); } @Override @@ -41,18 +41,18 @@ public void tick(Level level) { } else { level.setBlockAndUpdate(getBlockPos(), getBlockState().setValue(LaserReceiverBlock.ACTIVE, false)); } - efficiency = 0; - tempEfficiency = 0; - delay = 0; - power = laserLevel * 15; + this.efficiency = 0; + this.tempEfficiency = 0; + this.delay = 0; + this.power = laserLevel * 15; } if (getBlockState().getValue(LaserReceiverBlock.ACTIVE) && !changed) { - if (efficiency < power) { - delay++; - tempEfficiency += power * 0.005; - if (delay >= 20) { - delay = 0; - efficiency = tempEfficiency; + if (this.efficiency < this.power) { + this.delay++; + this.tempEfficiency += this.power * 0.005; + if (this.delay >= 20) { + this.delay = 0; + this.efficiency = this.tempEfficiency; } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/LoadMonitorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/LoadMonitorBlockEntity.java index 2fee6205a5..3caf127f2f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/LoadMonitorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/LoadMonitorBlockEntity.java @@ -3,20 +3,22 @@ import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.LoadMonitorBlock; +import dev.dubhe.anvilcraft.block.power.LoadMonitorBlock; import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import org.jspecify.annotations.Nullable; public class LoadMonitorBlockEntity extends BlockEntity implements IPowerConsumer { @Getter @Setter + @Nullable private PowerGrid grid; private int cooldown = 0; @@ -26,15 +28,15 @@ public LoadMonitorBlockEntity(BlockEntityType type, BlockPos pos, BlockState } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - tag.putInt("Cooldown", cooldown); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.cooldown = input.getIntOr("Cooldown", 0); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - cooldown = tag.getInt("Cooldown"); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("Cooldown", this.cooldown); } @Override @@ -57,8 +59,8 @@ public int getRedstoneSignal() { } public void tick() { - if (cooldown > 0) { - cooldown--; + if (this.cooldown > 0) { + this.cooldown--; } else { if (getGrid() == null) return; flushState(getLevel(), getBlockPos()); @@ -70,7 +72,7 @@ public void tick() { : 0; BlockState state = getBlockState().setValue(LoadMonitorBlock.LOAD, load); getLevel().setBlockAndUpdate(getBlockPos(), state); - cooldown = AnvilCraft.CONFIG.loadMonitor; + this.cooldown = AnvilCraft.CONFIG.loadMonitor; getLevel().updateNeighbourForOutputSignal(getBlockPos(), state.getBlock()); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/MagneticChuteBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/MagneticChuteBlockEntity.java index 3f13f040d7..1d9fe46014 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/MagneticChuteBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/MagneticChuteBlockEntity.java @@ -1,6 +1,6 @@ package dev.dubhe.anvilcraft.block.entity; -import dev.dubhe.anvilcraft.block.MagneticChuteBlock; +import dev.dubhe.anvilcraft.block.logistics.chute.MagneticChuteBlock; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.inventory.MagneticChuteMenu; @@ -14,9 +14,9 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class MagneticChuteBlockEntity extends BaseChuteBlockEntity { public MagneticChuteBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { @@ -39,7 +39,7 @@ protected boolean isEnabled() { } @Override - protected DirectionProperty getFacingProperty() { + protected EnumProperty getFacingProperty() { return MagneticChuteBlock.FACING; } @@ -50,7 +50,7 @@ protected Direction getOutputDirection() { @Override protected Direction getInputDirection() { - return getOutputDirection().getOpposite(); + return this.getOutputDirection().getOpposite(); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/MineralFountainBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/MineralFountainBlockEntity.java index 91e33c9384..c5559548ac 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/MineralFountainBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/MineralFountainBlockEntity.java @@ -8,13 +8,14 @@ import dev.dubhe.anvilcraft.recipe.mineral.MineralFountainRecipe; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import java.util.Arrays; import java.util.List; @@ -37,15 +38,15 @@ public static MineralFountainBlockEntity createBlockEntity( } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.tickCount = tag.getInt("tickCount"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.tickCount = input.getIntOr("tickCount", 0); } @Override - public void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - tag.putInt("tickCount", this.tickCount); + public void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("tickCount", this.tickCount); } /** @@ -56,8 +57,8 @@ public void tick() { if (this.tickCount > -1) this.tickCount--; if (this.tickCount != 0) return; if (!(this.level instanceof ServerLevel serverLevel)) return; - BlockState aroundState = getAroundBlock(); - if (this.level.getMinBuildHeight() > getBlockPos().getY() || getBlockPos().getY() > this.level.getMinBuildHeight() + 8) { + BlockState aroundState = this.getAroundBlock(); + if (this.level.getMinY() > getBlockPos().getY() || getBlockPos().getY() > this.level.getMinY() + 8) { return; } BlockState aboveState = this.level.getBlockState(getBlockPos().above()); @@ -72,31 +73,31 @@ public void tick() { this.level.setBlockAndUpdate(getBlockPos().above(), ModBlocks.CINERITE.getDefaultState()); } else { MineralFountainRecipe.Input input = new MineralFountainRecipe.Input(aroundState.getBlock(), aboveState.getBlock()); - this.level.getRecipeManager() + RecipeManager recipeManager = serverLevel.getServer().getRecipeManager(); + recipeManager .getRecipeFor(ModRecipeTypes.MINERAL_FOUNTAIN.get(), input, level) .ifPresent(recipe -> { - var chanceList = this.level - .getRecipeManager() - .getAllRecipesFor(ModRecipeTypes.MINERAL_FOUNTAIN_CHANCE.get()) + var chanceList = recipeManager.recipeMap() + .byType(ModRecipeTypes.MINERAL_FOUNTAIN_CHANCE.get()) .stream() .filter(r -> r.value() - .getDimension() - .equals(this.level.dimension().location()) + .dimension() + .equals(this.level.dimension().identifier()) ) - .filter(r -> r.value().getFromBlock().test(this.level, aboveState, null)) + .filter(r -> r.value().fromBlock().test(this.level, aboveState, null)) .toList(); for (var changeRecipe : chanceList) { if (this.level.getRandom().nextDouble() <= changeRecipe.value().getChance(serverLevel)) { this.level.setBlockAndUpdate( getBlockPos().above(), - changeRecipe.value().getToBlock().state() + changeRecipe.value().toBlock().state() ); return; } } level.setBlockAndUpdate( getBlockPos().above(), - recipe.value().getToBlock().state() + recipe.value().toBlock().state() ); }); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/MobAmberBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/MobAmberBlockEntity.java index 98178fd465..5f7934563a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/MobAmberBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/MobAmberBlockEntity.java @@ -1,21 +1,27 @@ package dev.dubhe.anvilcraft.block.entity; import dev.dubhe.anvilcraft.init.block.ModBlocks; -import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntitySpawnReason; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; +import org.jspecify.annotations.Nullable; public class MobAmberBlockEntity extends HasMobBlockEntity { protected MobAmberBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); } + @Override + protected @Nullable Entity createDefaultEntity(Level level) { + return EntityType.MOOSHROOM.create(level, EntitySpawnReason.SPAWN_ITEM_USE); + } + public static MobAmberBlockEntity createBlockEntity( BlockEntityType type, BlockPos pos, @@ -24,14 +30,14 @@ public static MobAmberBlockEntity createBlockEntity( return new MobAmberBlockEntity(type, pos, blockState); } - @OnlyIn(Dist.CLIENT) - public void clientTick(ClientLevel level, BlockPos blockPos) { + // @OnlyIn(Dist.CLIENT) + public void clientTick(Level level, BlockPos blockPos) { BlockState state = level.getBlockState(blockPos); Entity entity = getOrCreateDisplayEntity(level); if (!state.is(ModBlocks.MOB_AMBER_BLOCK) || !(entity instanceof LivingEntity displayEntity)) return; displayEntity.setPos(blockPos.getCenter()); - setYRot(displayEntity, state.getValue(BlockStateProperties.HORIZONTAL_FACING).toYRot()); + this.setYRot(displayEntity, state.getValue(BlockStateProperties.HORIZONTAL_FACING).toYRot()); } private void setYRot(LivingEntity displayEntity, float rotY) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/OverseerBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/OverseerBlockEntity.java index 732302d9fb..2e4739afb5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/OverseerBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/OverseerBlockEntity.java @@ -2,7 +2,7 @@ import dev.dubhe.anvilcraft.api.world.load.LevelLoadManager; import dev.dubhe.anvilcraft.api.world.load.LoadChuckData; -import dev.dubhe.anvilcraft.block.OverseerBlock; +import dev.dubhe.anvilcraft.block.utility.OverseerBlock; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -47,21 +47,21 @@ public static OverseerBlockEntity createBlockEntity( public void tick(Level level, BlockPos pos, BlockState state) { if (level instanceof ServerLevel serverLevel) { // 如果底座上方不是监督者,直接破坏底座,结束方法 - if (!isBaseValid()) { + if (!this.isBaseValid()) { if (LevelLoadManager.checkRegistered(pos)) { LevelLoadManager.unregister(pos, level); } return; } - int newlevel = checkBaseSupportsLevel(level, pos); + int newlevel = this.checkBaseSupportsLevel(level, pos); boolean newRandomTick = this.waterLoggedBlockCount >= 4; - if (newlevel == oldlevel && newRandomTick == oldRandomTick) { + if (newlevel == this.oldlevel && newRandomTick == this.oldRandomTick) { return; } - if (oldlevel > -1 || LevelLoadManager.checkRegistered(pos)) { + if (this.oldlevel > -1 || LevelLoadManager.checkRegistered(pos)) { LevelLoadManager.unregister(pos, level); - oldlevel = -1; - oldRandomTick = false; + this.oldlevel = -1; + this.oldRandomTick = false; } if (newlevel >= 0) { LevelLoadManager.register( @@ -73,8 +73,8 @@ public void tick(Level level, BlockPos pos, BlockState state) { serverLevel), serverLevel); } - oldlevel = newlevel; - oldRandomTick = newRandomTick; + this.oldlevel = newlevel; + this.oldRandomTick = newRandomTick; } } @@ -101,7 +101,7 @@ private int checkBaseSupportsLevel(Level level, BlockPos selfPos) { int waterLoggedBlockCount = 0; BlockPos.MutableBlockPos pos = selfPos.mutable().move(Direction.DOWN); for (int i = 0; i < 3; i++) { - int baseT = checkBaseAt(level, pos); + int baseT = this.checkBaseAt(level, pos); if (baseT == -1) break; waterLoggedBlockCount += baseT; supportLevel++; @@ -113,8 +113,8 @@ private int checkBaseSupportsLevel(Level level, BlockPos selfPos) { private boolean isBaseValid() { BlockPos thizPos = getBlockPos(); - if (!checkBlocks()) return false; - int supportsLevel = checkBaseSupportsLevel(this.level, thizPos); + if (!this.checkBlocks()) return false; + int supportsLevel = this.checkBaseSupportsLevel(this.level, thizPos); for (int i = 0; i < 3; i++) { BlockPos pos = getBlockPos().relative(Direction.Axis.Y, i); BlockState state = level.getBlockState(pos); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/PlasmaJetsBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/PlasmaJetsBlockEntity.java index aa481edeb5..7614831b92 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/PlasmaJetsBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/PlasmaJetsBlockEntity.java @@ -1,28 +1,24 @@ package dev.dubhe.anvilcraft.block.entity; import com.mojang.datafixers.util.Pair; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.chargecollector.ChargeCollectorManager; import dev.dubhe.anvilcraft.api.heat.HeaterManager; -import dev.dubhe.anvilcraft.block.FireCauldronBlock; -import dev.dubhe.anvilcraft.block.HeaterBlock; +import dev.dubhe.anvilcraft.block.power.consumer.HeaterBlock; +import dev.dubhe.anvilcraft.block.special.PlasmaJetsBlock; import dev.dubhe.anvilcraft.init.ModHeaterInfos; import dev.dubhe.anvilcraft.init.ModParticles; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.init.block.ModBlocks; -import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.NbtOps; -import net.minecraft.nbt.Tag; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.util.RandomSource; +import net.minecraft.util.TriState; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; @@ -30,20 +26,20 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.BoundingBox; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; -import net.neoforged.neoforge.common.util.TriState; +import org.jspecify.annotations.Nullable; import java.util.Collection; import java.util.HashSet; import java.util.Set; -import java.util.function.BiConsumer; public class PlasmaJetsBlockEntity extends BlockEntity { private static final int MAX_DURATION = 10 * 60 * 20; private final Set tubeWalls = new HashSet<>(); + @Nullable private BlockPos cauldronPos = null; private int duration = 0; @@ -119,13 +115,11 @@ public Pair, Set> getHeatingPoses(Level level) { return new Pair<>(noMagnet, magnet); } - private static final BiConsumer CLIENT_TICK = (entity, level) -> entity.clientTick((ClientLevel) level); - public static void tick(Level level, BlockPos ignored, BlockState ignored1, PlasmaJetsBlockEntity entity) { if (level instanceof ServerLevel serverLevel) { entity.serverTick(serverLevel); - } else if (level.isClientSide) { - CLIENT_TICK.accept(entity, level); + } else if (level.isClientSide()) { + entity.clientTick(level); } } @@ -142,8 +136,8 @@ private void serverTick(ServerLevel level) { this.provideCharge(level); } - @OnlyIn(Dist.CLIENT) - private void clientTick(ClientLevel level) { + // @OnlyIn(Dist.CLIENT) + private void clientTick(Level level) { this.refreshCauldronPos(level); this.summonParticles(level); } @@ -163,12 +157,12 @@ protected void checkTubeWallIntegrity(Level level) { break; } } - boolean cauldronExisting = level.getBlockState(cauldronPos).is(ModBlocks.FIRE_CAULDRON) - || level.getBlockState(cauldronPos).is(ModBlocks.OIL_CAULDRON) - || level.getBlockState(cauldronPos).is(Blocks.CAULDRON); - boolean belowCauldronIsNotHeater = !level.getBlockState(cauldronPos.below(1)) + boolean cauldronExisting = PlasmaJetsBlock.isIgnitedOilCauldron(level, this.cauldronPos) + || level.getBlockState(this.cauldronPos).is(ModBlocks.OIL_CAULDRON) + || level.getBlockState(this.cauldronPos).is(Blocks.CAULDRON); + boolean belowCauldronIsNotHeater = !level.getBlockState(this.cauldronPos.below(1)) .is(ModBlocks.HEATER); - boolean heaterOverload = level.getBlockState(cauldronPos.below(1)) + boolean heaterOverload = level.getBlockState(this.cauldronPos.below(1)) .getOptionalValue(HeaterBlock.OVERLOAD).orElse(true); if (wallBroken || blocked || !cauldronExisting || belowCauldronIsNotHeater || heaterOverload) { level.removeBlockEntity(this.getBlockPos()); @@ -180,11 +174,8 @@ protected void checkTubeWallIntegrity(Level level) { protected void refreshDuration(Level level) { this.duration--; - if (level.getBlockState(cauldronPos).getOptionalValue(FireCauldronBlock.LEVEL).orElse(0) > 0 - && this.duration + MAX_DURATION / 2 < MAX_DURATION - ) { + if (this.duration + MAX_DURATION / 2 < MAX_DURATION && PlasmaJetsBlock.tryConsumeOnce(level, this.cauldronPos)) { this.duration += MAX_DURATION / 2; - FireCauldronBlock.lowerFillLevel(level.getBlockState(cauldronPos), level, cauldronPos); } if (this.duration < 0) { level.removeBlock(this.getBlockPos(), false); @@ -199,9 +190,15 @@ protected void hurtEntities(Level level) { entity -> !entity.fireImmune() ); for (Entity entity : entities) { - entity.igniteForSeconds(15.0f); - if (entity.hurt(entity.damageSources().inFire(), 16.0f)) { - entity.playSound(SoundEvents.GENERIC_BURN, 0.4f, 2.0f + RandomSource.create().nextFloat() * 0.4f); + entity.igniteForSeconds(15.0F); + if (level.isClientSide()) { + if (entity.hurtClient(entity.damageSources().inFire())) { + entity.playSound(SoundEvents.GENERIC_BURN, 0.4F, 2.0F + RandomSource.create().nextFloat() * 0.4F); + } + } else { + if (entity.hurtServer(Util.cast(level), entity.damageSources().inFire(), 16.0F)) { + entity.playSound(SoundEvents.GENERIC_BURN, 0.4F, 2.0F + RandomSource.create().nextFloat() * 0.4F); + } } } } @@ -221,16 +218,19 @@ protected void provideCharge(Level level) { } } - @OnlyIn(Dist.CLIENT) - protected void summonParticles(ClientLevel level) { + // @OnlyIn(Dist.CLIENT) + protected void summonParticles(Level level) { Vec3 start = this.getParticleStartPos(level); Vec3 vector = start.vectorTo(this.getParticleEndPos()); RandomSource random = level.getRandom(); for (int i = 0; i < 5; i++) { level.addParticle( - ModParticles.PLASMA_JETS.get(), + ModParticles.PLASMA_JETS::get, + false, true, - start.x, start.y, start.z, + start.x, + start.y, + start.z, (random.nextIntBetweenInclusive(0, 20) - 10) / 100.0, vector.y * 0.13, (random.nextIntBetweenInclusive(0, 20) - 10) / 100.0 @@ -239,10 +239,9 @@ protected void summonParticles(ClientLevel level) { } protected void refreshCauldronPos(Level level) { - if ( - this.cauldronPos != null + if (this.cauldronPos != null && ( - level.getBlockState(this.cauldronPos).is(ModBlocks.FIRE_CAULDRON) + PlasmaJetsBlock.isIgnitedOilCauldron(level, this.cauldronPos) || level.getBlockState(this.cauldronPos).is(Blocks.CAULDRON) ) ) { @@ -250,7 +249,7 @@ protected void refreshCauldronPos(Level level) { } for (int i = 1; i < 6; i++) { if ( - level.getBlockState(this.getBlockPos().below(i)).is(ModBlocks.FIRE_CAULDRON) + PlasmaJetsBlock.isIgnitedOilCauldron(level, this.getBlockPos().below(i)) || level.getBlockState(this.getBlockPos().below(i)).is(ModBlocks.OIL_CAULDRON) || level.getBlockState(this.getBlockPos().below(i)).is(Blocks.CAULDRON) ) { @@ -275,33 +274,32 @@ public Vec3 getParticleEndPos() { } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putInt("duration", this.duration); - ListTag tubeWalls = new ListTag(); + @SuppressWarnings("deprecation") + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("duration", this.duration); + ValueOutput.ValueOutputList tubeWalls = output.childrenList("tube_walls"); for (TubeWallLayer layer : this.tubeWalls) { - tubeWalls.add(TubeWallLayer.CODEC.encode(layer, NbtOps.INSTANCE, new CompoundTag()).getOrThrow()); + tubeWalls.addChild().store(TubeWallLayer.CODEC, layer); } - tag.put("tube_walls", tubeWalls); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.duration = tag.getInt("duration"); - ListTag tubeWalls = tag.getList("tube_walls", Tag.TAG_COMPOUND); - for (Tag tubeWallTag1 : tubeWalls) { - if (!(tubeWallTag1 instanceof CompoundTag tubeWallTag)) { - continue; - } - this.tubeWalls.add(TubeWallLayer.CODEC.decode(NbtOps.INSTANCE, tubeWallTag).getOrThrow().getFirst()); + @SuppressWarnings("deprecation") + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.duration = input.getIntOr("duration", 0); + for (ValueInput wall : input.childrenListOrEmpty("tube_walls")) { + wall.read(TubeWallLayer.CODEC).ifPresent(this.tubeWalls::add); } this.cauldronPos = this.getBlockPos().below(this.tubeWalls.size() + 1); } public record TubeWallLayer(Pair first, Pair second) { - public static final Codec CODEC = RecordCodecBuilder.create(ins -> ins.group( - BlockPos.CODEC.fieldOf("center").forGetter(TubeWallLayer::getCenter) + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(ins -> ins.group( + BlockPos.CODEC + .fieldOf("center") + .forGetter(TubeWallLayer::getCenter) ).apply(ins, TubeWallLayer::of)); public static TubeWallLayer of(BlockPos center) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/PowerConverterBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/PowerConverterBlockEntity.java index 9220734d0d..ee29c814a9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/PowerConverterBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/PowerConverterBlockEntity.java @@ -4,16 +4,16 @@ import dev.dubhe.anvilcraft.api.energy.EnergyHelper; import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.BasePowerConverterBlock; +import dev.dubhe.anvilcraft.block.power.converter.BasePowerConverterBlock; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import org.jspecify.annotations.Nullable; public class PowerConverterBlockEntity extends BlockEntity implements IPowerConsumer { private PowerGrid grid = null; @@ -35,17 +35,17 @@ public static PowerConverterBlockEntity createBlockEntity( } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putInt("InputPower", inputPower); - tag.putInt("Cooldown", cooldown); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("InputPower", this.inputPower); + output.putInt("Cooldown", this.cooldown); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - inputPower = tag.getInt("InputPower"); - cooldown = tag.getInt("Cooldown"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.inputPower = input.getIntOr("InputPower", 0); + this.cooldown = input.getIntOr("Cooldown", 0); } /** @@ -55,10 +55,10 @@ public void tick() { if (this.level != null) { flushState(this.level, getBlockPos()); } - if (cooldown == 0) { - cooldown = AnvilCraft.CONFIG.powerConverter.powerConverterCountdown; + if (this.cooldown == 0) { + this.cooldown = AnvilCraft.CONFIG.powerConverter.powerConverterCountdown; if (getBlockState().getValue(BasePowerConverterBlock.OVERLOAD)) return; - int amountTick = (int) (inputPower + int amountTick = (int) (this.inputPower * AnvilCraft.CONFIG.powerConverter.powerConverterEfficiency * (1 - AnvilCraft.CONFIG.powerConverter.powerConverterLoss) ); @@ -66,13 +66,13 @@ public void tick() { Direction face = getBlockState().getValue(BasePowerConverterBlock.FACING); EnergyHelper.insertEnergy(getLevel(), getBlockPos().relative(face), face.getOpposite(), amount); } else { - cooldown--; + this.cooldown--; } } @Override public int getInputPower() { - return inputPower; + return this.inputPower; } @Override @@ -92,6 +92,6 @@ public void setGrid(@Nullable PowerGrid grid) { @Override public @Nullable PowerGrid getGrid() { - return grid; + return this.grid; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/PropelPistonBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/PropelPistonBlockEntity.java index f026a87869..3a8cb975c5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/PropelPistonBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/PropelPistonBlockEntity.java @@ -1,12 +1,14 @@ package dev.dubhe.anvilcraft.block.entity; -import dev.dubhe.anvilcraft.block.PropelPiston; +import dev.dubhe.anvilcraft.block.laser.PropelPistonBlock; import dev.dubhe.anvilcraft.init.item.ModComponents; +import dev.dubhe.anvilcraft.item.property.component.StoredEnergy; import dev.dubhe.anvilcraft.network.UpdatePropelPistonStoredEnergyPacket; import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentGetter; import net.minecraft.core.component.DataComponentMap; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; @@ -18,8 +20,10 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.piston.PistonStructureResolver; 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.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.HashSet; import java.util.List; @@ -40,7 +44,7 @@ public PropelPistonBlockEntity(BlockEntityType type, BlockPos pos, BlockState @Override public Direction getFacing() { - return getBlockState().getValue(PropelPiston.FACING); + return getBlockState().getValue(PropelPistonBlock.FACING); } public void updateStoredEnergy(Integer energy) { @@ -50,13 +54,13 @@ public void updateStoredEnergy(Integer energy) { } PacketDistributor.sendToPlayersTrackingChunk( serverLevel, - new ChunkPos(getBlockPos()), - new UpdatePropelPistonStoredEnergyPacket(getBlockPos(), storedEnergy) + ChunkPos.containing(getBlockPos()), + new UpdatePropelPistonStoredEnergyPacket(getBlockPos(), this.storedEnergy) ); } public void addEnergy(int energy) { - updateStoredEnergy(getStoredEnergy() + energy); + this.updateStoredEnergy(getStoredEnergy() + energy); } @Override @@ -67,25 +71,25 @@ protected int getBaseLaserLevel() { public void tick(Level level, BlockPos pos, BlockState state) { updateLaserLevel(calculateLaserLevel()); if (changed) { - delay = 0; - power = laserLevel * 15; + this.delay = 0; + this.power = laserLevel * 15; } if (!changed) { - if (storedEnergy < 80000) { - delay++; - if (delay >= 20) { - delay = 0; - addEnergy(power); + if (this.storedEnergy < 80000) { + this.delay++; + if (this.delay >= 20) { + this.delay = 0; + this.addEnergy(this.power); } } } if (getStoredEnergy() > 0) { - level.setBlockAndUpdate(pos, state.setValue(PropelPiston.EXHAUSTED, false)); + level.setBlockAndUpdate(pos, state.setValue(PropelPistonBlock.EXHAUSTED, false)); if (!level.getBlockTicks().hasScheduledTick(pos, state.getBlock())) { - checkCanMove(level, pos, state); + this.checkCanMove(level, pos, state); } } else { - level.setBlockAndUpdate(pos, state.setValue(PropelPiston.EXHAUSTED, true).setValue(PropelPiston.MOVING, false)); + level.setBlockAndUpdate(pos, state.setValue(PropelPistonBlock.EXHAUSTED, true).setValue(PropelPistonBlock.MOVING, false)); } super.tick(level); resetState(); @@ -94,31 +98,31 @@ public void tick(Level level, BlockPos pos, BlockState state) { @Override public Set getIgnoreFace() { Set directions = new HashSet<>(List.of(Direction.values())); - directions.remove(getBlockState().getValue(PropelPiston.FACING).getOpposite()); + directions.remove(getBlockState().getValue(PropelPistonBlock.FACING).getOpposite()); return directions; } private void checkCanMove(Level level, BlockPos pos, BlockState state) { - Direction direction = state.getValue(PropelPiston.FACING); - if (state.getValue(PropelPiston.MOVING)) { + Direction direction = state.getValue(PropelPistonBlock.FACING); + if (state.getValue(PropelPistonBlock.MOVING)) { if (new PistonStructureResolver(level, pos, direction, true).resolve()) { - level.blockEvent(pos, state.getBlock(), 0, state.getValue(PropelPiston.FACING).get3DDataValue()); + level.blockEvent(pos, state.getBlock(), 0, state.getValue(PropelPistonBlock.FACING).get3DDataValue()); } else { - level.setBlockAndUpdate(pos, state.setValue(PropelPiston.MOVING, false)); + level.setBlockAndUpdate(pos, state.setValue(PropelPistonBlock.MOVING, false)); } } } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.storedEnergy = tag.getInt("storedEnergy"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.storedEnergy = input.getIntOr("storedEnergy", 0); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putInt("storedEnergy", Math.min(this.storedEnergy, 80000)); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("storedEnergy", Math.min(this.storedEnergy, 80000)); } @Override @@ -134,13 +138,13 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registries) { } @Override - protected void applyImplicitComponents(DataComponentInput componentInput) { - Integer energy = componentInput.getOrDefault(ModComponents.STORED_ENERGY, 0); + protected void applyImplicitComponents(DataComponentGetter components) { + Integer energy = components.getOrDefault(ModComponents.STORED_ENERGY, StoredEnergy.EMPTY).value(); this.updateStoredEnergy(energy); } @Override protected void collectImplicitComponents(DataComponentMap.Builder components) { - components.set(ModComponents.STORED_ENERGY, this.storedEnergy); + components.set(ModComponents.STORED_ENERGY, new StoredEnergy(this.storedEnergy)); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java index e131945adc..0014c0105c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java @@ -2,7 +2,7 @@ import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.item.IDiskCloneable; -import dev.dubhe.anvilcraft.block.PulseGeneratorBlock; +import dev.dubhe.anvilcraft.block.utility.redstone.PulseGeneratorBlock; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -10,21 +10,20 @@ import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Optional; @@ -53,31 +52,24 @@ public static PulseGeneratorBlockEntity createBlockEntity(BlockEntityType typ } @Override - public void saveToItem(ItemStack stack, HolderLookup.Provider registries) { - CompoundTag data = this.constructDataNbt(); - BlockItem.setBlockEntityData(stack, this.getType(), data); - stack.applyComponents(this.collectComponents()); - } - - @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); CompoundTag data = this.constructDataNbt(); data.putByte("State", this.state.index()); - tag.put("ExtraData", data); + output.store("ExtraData", CompoundTag.CODEC, data); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - CompoundTag data = tag.getCompound("ExtraData"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + CompoundTag data = input.read("ExtraData", CompoundTag.CODEC).orElse(new CompoundTag()); this.readDataNbt(data); // TODO: 删除if-else和else块内的代码 if (data.contains("State")) { - this.state = State.fromIndex(data.getByte("State")); + this.state = State.fromIndex(data.getByteOr("State", (byte) 0)); } else if (data.contains("RemainingWaitingTime") && data.contains("RemainingSignalDuration")) { - int waitingTimeRemaining = data.getInt("RemainingWaitingTime"); - int signalDurationRemaining = data.getInt("RemainingSignalDuration"); + int waitingTimeRemaining = data.getIntOr("RemainingWaitingTime", 0); + int signalDurationRemaining = data.getIntOr("RemainingSignalDuration", 0); if (waitingTimeRemaining != 0) { this.state = State.WAITING; Optional.ofNullable(this.getLevel()) @@ -108,22 +100,22 @@ public CompoundTag constructDataNbt() { } public PulseGeneratorBlockEntity readDataNbt(CompoundTag data) { - this.startMode = Mode.fromIndex(data.getByte("StartMode")); - this.outputInvert = data.getBoolean("OutputMode"); - this.isInputtingSignal = data.getBoolean("Inputting"); - this.waitingTime = data.getInt("WaitingTime"); - this.signalDuration = data.getInt("SignalDuration"); + this.startMode = Mode.fromIndex(data.getByteOr("StartMode", (byte) 0)); + this.outputInvert = data.getBooleanOr("OutputMode", false); + this.isInputtingSignal = data.getBooleanOr("Inputting", false); + this.waitingTime = data.getIntOr("WaitingTime", 0); + this.signalDuration = data.getIntOr("SignalDuration", 0); return this; } @Override - public void storeDiskData(CompoundTag tag) { - tag.put("Data", this.constructDataNbt()); + public void storeDiskData(ValueOutput output) { + output.store("Data", CompoundTag.CODEC, this.constructDataNbt()); } @Override - public void applyDiskData(CompoundTag data) { - this.readDataNbt(data.getCompound("Data")); + public void applyDiskData(ValueInput input) { + this.readDataNbt(input.read("Data", CompoundTag.CODEC).orElse(new CompoundTag())); } @ApiStatus.Internal @@ -199,9 +191,9 @@ public CompoundTag exportMoveData() { } public void applyMoveData(Level level, BlockPos pos, BlockState state, CompoundTag move) { - this.readDataNbt(move.getCompound("Data")); - this.isInputtingSignal = move.getBoolean("Inputting"); - this.state = State.fromIndex(move.getByte("State")); + this.readDataNbt(move.getCompoundOrEmpty("Data")); + this.isInputtingSignal = move.getBooleanOr("Inputting", false); + this.state = State.fromIndex(move.getByteOr("State", (byte) 0)); switch (this.state) { case WAITING -> level.scheduleTick(pos, state.getBlock(), this.getWaitingTime()); case OUTPUTTING -> level.scheduleTick(pos, state.getBlock(), this.getSignalDuration()); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/RemoteTransmissionPoleBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/RemoteTransmissionPoleBlockEntity.java index efee07a9d4..b135ca01d5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/RemoteTransmissionPoleBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/RemoteTransmissionPoleBlockEntity.java @@ -3,7 +3,7 @@ import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.power.PowerComponentType; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.RemoteTransmissionPoleBlock; +import dev.dubhe.anvilcraft.block.power.transmitting.RemoteTransmissionPoleBlock; import dev.dubhe.anvilcraft.block.state.Vertical4PartHalf; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/ResentfulAmberBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/ResentfulAmberBlockEntity.java index bb7224bd5d..87107213ae 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/ResentfulAmberBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/ResentfulAmberBlockEntity.java @@ -4,20 +4,25 @@ import net.minecraft.commands.arguments.EntityAnchorArgument; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.ai.targeting.TargetingConditions; +import net.minecraft.world.entity.EntitySpawnReason; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; +import org.jspecify.annotations.Nullable; public class ResentfulAmberBlockEntity extends MobAmberBlockEntity { private ResentfulAmberBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); } + @Override + protected @Nullable Entity createDefaultEntity(Level level) { + return EntityType.ZOMBIE.create(level, EntitySpawnReason.SPAWN_ITEM_USE); + } + public static ResentfulAmberBlockEntity createBlockEntity( BlockEntityType type, BlockPos pos, @@ -26,19 +31,17 @@ public static ResentfulAmberBlockEntity createBlockEntity( return new ResentfulAmberBlockEntity(type, pos, blockState); } - @OnlyIn(Dist.CLIENT) - public void clientTick(ClientLevel level, BlockPos blockPos) { + // @OnlyIn(Dist.CLIENT) + public void clientTick(Level level, BlockPos blockPos) { Entity displayEntity = getOrCreateDisplayEntity(level); if (displayEntity == null) return; Vec3 center = blockPos.getCenter(); - Entity nearest = level.getNearestEntity( - Player.class, - TargetingConditions.forNonCombat(), - null, + Player nearest = level.getNearestPlayer( center.x, center.y, center.z, - AABB.ofSize(center, 8, 8, 8) + 8, + false ); if (nearest == null) return; displayEntity.setPos(blockPos.getCenter()); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyLaserBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyLaserBlockEntity.java index d27256e3aa..78a4a1ffee 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyLaserBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyLaserBlockEntity.java @@ -2,7 +2,7 @@ import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.RubyLaserBlock; +import dev.dubhe.anvilcraft.block.laser.RubyLaserBlock; import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; @@ -10,7 +10,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; @Getter @Setter @@ -32,23 +32,23 @@ public static RubyLaserBlockEntity createBlockEntity( @Override protected int getBaseLaserLevel() { - return isSwitchedOn() ? 1 : 0; + return this.isSwitchedOn() ? 1 : 0; } @Override public void tick(Level level) { this.resetState(); - if (getGrid() != null && getBlockState().getValue(RubyLaserBlock.OVERLOAD) == getGrid().isWorking()) { + if (this.getGrid() != null && this.getBlockState().getValue(RubyLaserBlock.OVERLOAD) == this.getGrid().isWorking()) { level.setBlock( - getPos(), - getBlockState().setValue(OVERLOAD, !getGrid().isWorking()), + this.getPos(), + this.getBlockState().setValue(OVERLOAD, !this.getGrid().isWorking()), 2 ); } - if (level.hasNeighborSignal(getBlockPos()) == (getBlockState().getValue(SWITCH) == Switch.ON)) { + if (level.hasNeighborSignal(getBlockPos()) == (this.getBlockState().getValue(SWITCH) == Switch.ON)) { level.setBlock( - getPos(), - getBlockState().setValue( + this.getPos(), + this.getBlockState().setValue( SWITCH, level.hasNeighborSignal(getBlockPos()) ? Switch.OFF @@ -56,15 +56,15 @@ public void tick(Level level) { ), 2); } - if (isSwitchedOn()) { - emitLaser(getFacing()); + if (this.isSwitchedOn()) { + this.emitLaser(this.getFacing()); } else { if (irradiateBlockPos != null && level.getBlockEntity(irradiateBlockPos) instanceof BaseLaserBlockEntity irradiateBlockEntity ) { irradiateBlockEntity.onCancelingIrradiation(this); } - updateIrradiateBlockPos(null); + this.updateIrradiateBlockPos(null); } super.tick(level); } @@ -96,7 +96,7 @@ public int getInputPower() { @Override public float getLaserOffset() { - return 0.489f; + return 0.489F; } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyPrismBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyPrismBlockEntity.java index c297e14a36..f0707aac30 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyPrismBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/RubyPrismBlockEntity.java @@ -1,6 +1,6 @@ package dev.dubhe.anvilcraft.block.entity; -import dev.dubhe.anvilcraft.block.RubyPrismBlock; +import dev.dubhe.anvilcraft.block.laser.RubyPrismBlock; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.Level; @@ -23,11 +23,11 @@ public static RubyPrismBlockEntity createBlockEntity( } public void tick(Level level) { - if (enabled) { - emitLaser(getFacing()); + if (this.enabled) { + emitLaser(this.getFacing()); } if (laserLevel == 0) { - enabled = false; + this.enabled = false; } super.tick(level); resetState(); @@ -40,19 +40,19 @@ protected int getBaseLaserLevel() { @Override public void onCancelingIrradiation(BaseLaserBlockEntity baseLaserBlockEntity) { - enabled = false; + this.enabled = false; super.onCancelingIrradiation(baseLaserBlockEntity); } @Override public void onIrradiated(BaseLaserBlockEntity baseLaserBlockEntity) { - enabled = true; + this.enabled = true; super.onIrradiated(baseLaserBlockEntity); } @Override public int getLaserLevel() { - if (enabled) { + if (this.enabled) { return super.getLaserLevel(); } return 0; @@ -60,7 +60,7 @@ public int getLaserLevel() { @Override public void clientUpdate(BlockPos irradiateBlockPos, int laserLevel) { - enabled = laserLevel > 0; + this.enabled = laserLevel > 0; super.clientUpdate(irradiateBlockPos, laserLevel); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/SimpleChuteBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/SimpleChuteBlockEntity.java index 38df8216cf..6932e0ec8e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/SimpleChuteBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/SimpleChuteBlockEntity.java @@ -1,135 +1,140 @@ package dev.dubhe.anvilcraft.block.entity; import dev.dubhe.anvilcraft.AnvilCraft; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.block.entity.IExtensibleBlockEntity; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; -import dev.dubhe.anvilcraft.block.SimpleChuteBlock; +import dev.dubhe.anvilcraft.api.itemhandler.SingleStackResourceHandler; +import dev.dubhe.anvilcraft.block.logistics.chute.SimpleChuteBlock; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +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.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -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 java.util.List; import java.util.Objects; -import static dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil.getTargetItemHandlerList; - @Getter -public class SimpleChuteBlockEntity extends BlockEntity implements IItemHandlerHolder { - private final ItemStackHandler itemHandler = new ItemStackHandler(1) { +public class SimpleChuteBlockEntity extends BlockEntity implements IItemResourceHandlerHolder, IExtensibleBlockEntity { + private final SingleStackResourceHandler itemHandler = new SingleStackResourceHandler() { @Override - public void onContentsChanged(int slot) { - setChanged(); + protected void onContentChanged(ItemStack stack) { + SimpleChuteBlockEntity.this.setChanged(); + Level level = SimpleChuteBlockEntity.this.level; + if (level == null) return; + level.sendBlockUpdated( + SimpleChuteBlockEntity.this.getBlockPos(), + SimpleChuteBlockEntity.this.getBlockState(), + SimpleChuteBlockEntity.this.getBlockState(), + Block.UPDATE_ALL + ); } }; @Setter private int cooldown = 0; private long tickedGameTime; - public SimpleChuteBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState) { - super(type, pos, blockState); + public SimpleChuteBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.putInt("Cooldown", cooldown); - tag.put("Inventory", itemHandler.serializeNBT(provider)); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("Cooldown", this.cooldown); + this.itemHandler.serialize(output.child("Inventory")); } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - cooldown = tag.getInt("Cooldown"); - itemHandler.deserializeNBT(provider, tag.getCompound("Inventory")); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.cooldown = input.getIntOr("Cooldown", 0); + this.itemHandler.deserialize(input.childOrEmpty("Inventory")); } /** * tick */ - @SuppressWarnings({"UnreachableCode", "DuplicatedCode"}) public void tick() { - if (level == null) return; - if (cooldown > 0) cooldown--; - tickedGameTime = level.getGameTime(); - if (cooldown == 0 && !this.itemHandler.getStackInSlot(0).isEmpty()) { - cooldown = AnvilCraft.CONFIG.chuteMaxCooldown + 1; + if (this.level == null) return; + if (this.cooldown > 0) this.cooldown--; + this.tickedGameTime = this.level.getGameTime(); + if (this.cooldown == 0 && !this.itemHandler.getResource(0).isEmpty()) { + this.cooldown = AnvilCraft.CONFIG.chuteMaxCooldown + 1; } - if (cooldown == 1) { - BlockPos targetPos = getBlockPos().relative(getOutputDirection()); - BlockEntity targetBE = level.getBlockEntity(targetPos); + if (this.cooldown == 1) { + BlockPos targetPos = this.getBlockPos().relative(this.getOutputDirection()); + BlockEntity targetBE = this.level.getBlockEntity(targetPos); boolean isTargetEmpty = false; - if (targetBE != null) isTargetEmpty = isTargetEmpty(targetBE); + if (targetBE != null) isTargetEmpty = this.isTargetEmpty(targetBE); // 尝试向朝向容器输出 - List targetList = getTargetItemHandlerList( + List> targetList = ItemHandlerUtil.getTargetItemHandlerList( targetPos, - getOutputDirection().getOpposite(), - level + this.getOutputDirection().getOpposite(), + this.level ); if (targetList != null && !targetList.isEmpty()) { - for (IItemHandler target : targetList) { - boolean success = ItemHandlerUtil.exportToTarget(getItemHandler(), 64, stack -> true, target); - if (success) { - // 特判溜槽cd7gt - if (isTargetEmpty) setChuteCD(targetBE); - break; - } + for (ResourceHandler target : targetList) { + boolean success = ItemHandlerUtil.exportToTarget(this.getItemHandler(), 64, (_, _) -> true, target); + if (!success) continue; + // 特判溜槽cd7gt + if (isTargetEmpty) this.setChuteCD(targetBE); + break; } } else { - Vec3 center = getBlockPos().relative(getDirection()).getCenter(); - List itemEntities = Objects.requireNonNull(getLevel()) - .getEntitiesOfClass( - ItemEntity.class, - new AABB(getBlockPos().relative(getDirection())), - itemEntity -> !itemEntity.getItem().isEmpty() - ); + Vec3 center = this.getBlockPos().relative(this.getDirection()).getCenter(); + List itemEntities = Objects.requireNonNull(this.getLevel()).getEntitiesOfClass( + ItemEntity.class, + new AABB(this.getBlockPos().relative(this.getDirection())), + itemEntity -> !itemEntity.getItem().isEmpty() + ); AABB aabb = new AABB( center.add(-0.125, -0.125, -0.125), center.add(0.125, 0.125, 0.125) ); - if (getLevel().noCollision(aabb)) { - for (int i = 0; i < this.itemHandler.getSlots(); i++) { - ItemStack stack = this.itemHandler.getStackInSlot(i); - if (stack.isEmpty()) { - continue; - } - int sameItemCount = 0; - for (ItemEntity entity : itemEntities) { - if (entity.getItem().getItem() == stack.getItem()) { - sameItemCount += entity.getItem().getCount(); - } - } - if (sameItemCount < stack.getItem().getMaxStackSize(stack)) { - ItemStack droppedItemStack = stack.copy(); - int droppedItemCount = - Math.min(stack.getCount(), stack.getMaxStackSize() - sameItemCount); - droppedItemStack.setCount(droppedItemCount); - stack.setCount(stack.getCount() - droppedItemCount); - if (stack.getCount() == 0) stack = ItemStack.EMPTY; - ItemEntity itemEntity = new ItemEntity( - getLevel(), center.x, center.y, center.z, droppedItemStack, 0, 0, 0); - itemEntity.setDefaultPickUpDelay(); - getLevel().addFreshEntity(itemEntity); - this.itemHandler.setStackInSlot(i, stack); - break; - } - + if (!this.getLevel().noCollision(aabb)) return; + ItemStack stack = this.itemHandler.getStack(); + if (stack.isEmpty()) return; + int sameItemCount = 0; + for (ItemEntity entity : itemEntities) { + if (entity.getItem().getItem() == stack.getItem()) { + sameItemCount += entity.getItem().getCount(); } } + if (sameItemCount >= stack.getMaxStackSize()) return; + int dropping = Math.min(stack.getCount(), stack.getMaxStackSize() - sameItemCount); + ItemStack remaining = stack.copyWithCount(dropping); + if (remaining.getCount() == 0) remaining = ItemStack.EMPTY; + ItemEntity itemEntity = new ItemEntity( + this.getLevel(), + center.x, + center.y, + center.z, + remaining, + 0, + 0, + 0 + ); + itemEntity.setDefaultPickUpDelay(); + this.getLevel().addFreshEntity(itemEntity); + this.itemHandler.setStack(stack.copyWithCount(stack.getCount() - dropping)); } } - level.updateNeighbourForOutputSignal(getBlockPos(), getBlockState().getBlock()); + this.level.updateNeighbourForOutputSignal(this.getBlockPos(), this.getBlockState().getBlock()); } public boolean isTargetEmpty(BlockEntity blockEntity) { @@ -156,8 +161,8 @@ private void setChuteCD(BlockEntity targetBE) { } private Direction getDirection() { - if (getLevel() == null) return Direction.DOWN; - BlockState state = getLevel().getBlockState(getBlockPos()); + if (this.getLevel() == null) return Direction.DOWN; + BlockState state = this.getLevel().getBlockState(this.getBlockPos()); if (state.getBlock() instanceof SimpleChuteBlock) { return state.getValue(SimpleChuteBlock.FACING); } @@ -165,25 +170,29 @@ private Direction getDirection() { } public int getRedstoneSignal() { - int i = 0; - for (int j = 0; j < itemHandler.getSlots(); ++j) { - ItemStack itemStack = itemHandler.getStackInSlot(j); - if (itemStack.isEmpty()) { - continue; - } - ++i; - } - return i; + return this.itemHandler.getStack().isEmpty() ? 0 : 1; } protected Direction getOutputDirection() { - return getDirection(); + return this.getDirection(); } public boolean isEmpty() { - for (int i = 0; i < itemHandler.getSlots(); i++) { - if (!itemHandler.getStackInSlot(i).isEmpty()) return false; - } - return true; + return this.itemHandler.getStack().isEmpty(); + } + + @Override + public BlockEntityType getThatType() { + return ModBlockEntities.CHUTE.get(); + } + + @Override + public void extend(ChuteBlockEntity newBe) { + ItemHandlerUtil.exportToTarget( + this.itemHandler, + this.itemHandler.getStack().getMaxStackSize(), + (_, _) -> true, + newBe.getItemHandler() + ); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/SpaceOvercompressorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/SpaceOvercompressorBlockEntity.java index c2e5081c97..cd575b0d2c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/SpaceOvercompressorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/SpaceOvercompressorBlockEntity.java @@ -16,7 +16,9 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.items.ItemStackHandler; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.transfer.item.ItemStacksResourceHandler; import java.util.List; @@ -40,18 +42,18 @@ public static SpaceOvercompressorBlockEntity createBlockEntity(BlockEntityType entry : this.whiteList) { - tag.putString(entry.first().getId() + "_-_" + index, entry.second()); - index++; + output.putInt("WhiteListSize", this.whiteList.size()); + for (int i = 0; i < this.whiteList.size(); i++) { + Pair entry = this.whiteList.get(i); + output.putString("WhiteListId" + i, entry.first().getId()); + output.putString("WhiteListArg" + i, entry.second()); } } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - if (tag.contains("TargetEntityUUID")) { - this.targetEntityUUID = tag.getUUID("TargetEntityUUID"); - } else { - this.targetEntityUUID = null; - } - if (tag.contains("TargetLightningRod")) { - int[] arr = tag.getIntArray("TargetLightningRod"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.targetEntityUUID = input.read("TargetEntityUUID", UUIDUtil.CODEC).orElse(null); + if (input.getIntArray("TargetLightningRod").isPresent()) { + int[] arr = input.getIntArray("TargetLightningRod").orElse(new int[0]); this.targetLightningRod = new BlockPos(arr[0], arr[1], arr[2]); } else { this.targetLightningRod = null; } this.whiteList.clear(); - for (String key : tag.getAllKeys()) { - if (key.split("_-_").length != 2) continue; - String id = key.split("_-_")[0]; - this.whiteList.add(Pair.of(TeslaFilter.getFilter(id), tag.getString(key))); + int size = input.getIntOr("WhiteListSize", 0); + for (int i = 0; i < size; i++) { + String id = input.getStringOr("WhiteListId" + i, ""); + String arg = input.getStringOr("WhiteListArg" + i, ""); + this.whiteList.add(Pair.of(TeslaFilter.getFilter(id), arg)); } } @@ -196,7 +193,7 @@ public void tick() { this.tickCount--; AABB aabb = new AABB(this.getBlockPos().above(3)).expandTowards(8, 8, 8).expandTowards(-8, -8, -8); if (this.targetEntity != null) { - if (!targetEntity.isAlive()) { + if (!this.targetEntity.isAlive()) { this.clearTargetEntity(state); } else { AABB boundingBox = this.targetEntity.getBoundingBox(); @@ -218,7 +215,8 @@ public void tick() { this.targetEntity = targetEntity; this.targetEntityUUID = targetEntity.getUUID(); this.level.sendBlockUpdated(this.getBlockPos(), state, state, 2); - this.targetEntity.hurt(this.level.damageSources().lightningBolt(), 5.0F); + // noinspection deprecation + this.targetEntity.hurtOrSimulate(this.level.damageSources().lightningBolt(), 5.0F); } else { ArrayList lightningRods = new ArrayList<>(); BlockPos.betweenClosedStream(aabb) @@ -315,24 +313,25 @@ public List> getWhiteList() { } @Override - public void storeDiskData(CompoundTag tag) { - ListTag filters = new ListTag(); + public void storeDiskData(ValueOutput output) { + ValueOutput.ValueOutputList filters = output.childrenList("filters"); for (var entry : this.whiteList) { - CompoundTag entryTag = new CompoundTag(); + ValueOutput entryTag = filters.addChild(); entryTag.putString("id", entry.first().getId()); entryTag.putString("arg", entry.right()); - filters.add(entryTag); } - tag.put("Filters", filters); } @Override - public void applyDiskData(CompoundTag data) { + public void applyDiskData(ValueInput input) { + ValueInput.ValueInputList valueInputs = input.childrenListOrEmpty("filters"); ArrayList> filters = new ArrayList<>(); - for (Tag tag : data.getList("Filters", Tag.TAG_COMPOUND)) { - if (!(tag instanceof CompoundTag filter)) continue; - filters.add(Pair.of(TeslaFilter.getFilter(filter.getString("id")), filter.getString("arg"))); - } + valueInputs.forEach(it -> { + Optional id = it.getString("id"); + Optional arg = it.getString("arg"); + if (id.isEmpty() || arg.isEmpty()) return; + filters.add(Pair.of(TeslaFilter.getFilter(id.get()), arg.get())); + }); this.handleSync(filters); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/TransmissionPoleBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/TransmissionPoleBlockEntity.java index 5d89984bee..06f48e3c62 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/TransmissionPoleBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/TransmissionPoleBlockEntity.java @@ -2,7 +2,7 @@ import dev.dubhe.anvilcraft.api.power.PowerComponentType; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.TransmissionPoleBlock; +import dev.dubhe.anvilcraft.block.power.transmitting.TransmissionPoleBlock; import dev.dubhe.anvilcraft.block.state.Vertical3PartHalf; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/VoidEnergyCollectorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/VoidEnergyCollectorBlockEntity.java index 770200a4df..8594e7ee7a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/VoidEnergyCollectorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/VoidEnergyCollectorBlockEntity.java @@ -3,21 +3,21 @@ import dev.dubhe.anvilcraft.api.power.IPowerProducer; import dev.dubhe.anvilcraft.api.power.PowerGrid; import dev.dubhe.anvilcraft.api.tooltip.providers.IHasAffectRange; -import dev.dubhe.anvilcraft.block.NegativeMatterBlock; -import dev.dubhe.anvilcraft.block.VoidEnergyCollectorBlock; -import dev.dubhe.anvilcraft.block.VoidMatterBlock; +import dev.dubhe.anvilcraft.block.power.generator.VoidEnergyCollectorBlock; +import dev.dubhe.anvilcraft.block.storage.NegativeMatterBlock; +import dev.dubhe.anvilcraft.block.storage.VoidMatterBlock; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; @@ -79,21 +79,21 @@ public int getOutputPower() { } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.cooldownCount = tag.getInt("cooldownCount"); - this.decayCooldownCount = tag.getInt("decayCooldownCount"); - this.blockCount = tag.getInt("blockCount"); - this.power = tag.getInt("power"); + public void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.cooldownCount = input.getIntOr("cooldownCount", 0); + this.decayCooldownCount = input.getIntOr("decayCooldownCount", 0); + this.blockCount = input.getIntOr("blockCount", 0); + this.power = input.getIntOr("power", 0); } @Override - public void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - tag.putInt("cooldownCount", this.cooldownCount); - tag.putInt("decayCooldownCount", this.decayCooldownCount); - tag.putInt("blockCount", this.blockCount); - tag.putInt("power", this.power); + public void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("cooldownCount", this.cooldownCount); + output.putInt("decayCooldownCount", this.decayCooldownCount); + output.putInt("blockCount", this.blockCount); + output.putInt("power", this.power); } private static int getPowerFromBlockCount(int count) { @@ -112,23 +112,23 @@ public void gridTick() { if (this.cooldownCount-- > 1) return; this.cooldownCount = COOLDOWN; final int oldPower = this.power; - this.blockCount = countBlocksInRange(); + this.blockCount = this.countBlocksInRange(); this.power = getPowerFromBlockCount(this.blockCount); if (this.power > 0 && this.getBlockState().getBlock() instanceof VoidEnergyCollectorBlock voidEnergyCollector) { voidEnergyCollector.activate(this.level, this.getBlockPos(), this.getBlockState()); if (this.decayCooldownCount-- <= 1) { - makeBlocksDecay(); + this.makeBlocksDecay(); this.decayCooldownCount = level.getRandom().nextInt(0, 60); } } - if (power != oldPower && grid != null) grid.markChanged(); + if (this.power != oldPower && this.grid != null) this.grid.markChanged(); this.blockCount = 0; - time++; + this.time++; } public static boolean isOutOfBuildLimits(Level level, BlockPos pos) { - int minHeight = level.getMinBuildHeight(); - int maxHeight = level.getMaxBuildHeight(); + int minHeight = level.getMinY(); + int maxHeight = level.getMaxY(); int y = pos.getY(); return y < minHeight || y >= maxHeight; } @@ -220,6 +220,6 @@ public AABB shape() { } public void clientTick() { - rotation += (float) (Math.log(getServerPower() + 1) * 2.5); + this.rotation += (float) (Math.log(getServerPower() + 1) * 2.5); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/WhiteHoleBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/WhiteHoleBlockEntity.java index 49701b5748..55ed155dc9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/WhiteHoleBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/WhiteHoleBlockEntity.java @@ -19,7 +19,7 @@ public static WhiteHoleBlockEntity createBlockEntity(BlockEntityType type, Bl @Override public void onLoad() { super.onLoad(); - if (this.level != null && !this.level.isClientSide) { + if (this.level != null && !this.level.isClientSide()) { GravityManager.GravitySourceType type = GravityManager.GravitySourceManager.getType(this.getBlockState().getBlock()); if (type != null) { GravityManager.GravitySourceManager.addSource(this.level, this.worldPosition, type); @@ -30,7 +30,7 @@ public void onLoad() { @Override public void setRemoved() { super.setRemoved(); - if (this.level != null && !this.level.isClientSide) { + if (this.level != null && !this.level.isClientSide()) { GravityManager.GravitySourceManager.removeSource(this.level, this.worldPosition); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BaseBatchCraftingBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BaseBatchCraftingBlockEntity.java index 0660299d42..5dcefa0129 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BaseBatchCraftingBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BaseBatchCraftingBlockEntity.java @@ -1,5 +1,6 @@ package dev.dubhe.anvilcraft.block.entity.batch; +import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.IHasDisplayItem; import dev.dubhe.anvilcraft.api.item.IDiskCloneable; import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; @@ -7,11 +8,10 @@ import dev.dubhe.anvilcraft.api.itemhandler.PollableFilteredItemStackHandler; import dev.dubhe.anvilcraft.api.power.IPowerConsumer; import dev.dubhe.anvilcraft.api.power.PowerGrid; -import dev.dubhe.anvilcraft.block.batch.BaseBatchCraftingBlock; import dev.dubhe.anvilcraft.block.entity.BaseMachineBlockEntity; import dev.dubhe.anvilcraft.block.entity.IFilterBlockEntity; +import dev.dubhe.anvilcraft.block.power.batch.BaseBatchCraftingBlock; import it.unimi.dsi.fastutil.ints.IntArrayList; -import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; import net.minecraft.core.BlockPos; @@ -22,41 +22,46 @@ import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; +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.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.capabilities.Capabilities; -import net.neoforged.neoforge.items.IItemHandler; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; import org.joml.Vector3f; +import org.jspecify.annotations.Nullable; import java.util.Comparator; import java.util.List; import java.util.Objects; -@Getter public abstract class BaseBatchCraftingBlockEntity extends BaseMachineBlockEntity implements IFilterBlockEntity, IPowerConsumer, IDiskCloneable, IHasDisplayItem { + @Getter protected final int inputPower = 4; + @Getter @Setter protected PowerGrid grid; - @Getter(AccessLevel.NONE) protected final PollableFilteredItemStackHandler handler = this.constructHandler(); + @Getter protected @Nullable ItemStack displayingStack; - @Getter(AccessLevel.NONE) protected boolean poweredBefore = false; - @Getter(AccessLevel.NONE) protected int cooldown = 0; + @Getter protected final int id; public BaseBatchCraftingBlockEntity(BlockEntityType type, BlockPos pos, BlockState blockState, int id) { @@ -71,30 +76,31 @@ public void tick(Level level, BlockPos pos) { BlockState state = level.getBlockState(pos); level.updateNeighbourForOutputSignal(pos, state.getBlock()); boolean powered = state.getValue(BaseBatchCraftingBlock.POWERED); + if (level.isClientSide()) return; this.cooldown = Math.max(0, this.cooldown - 1); - if (powered && !this.poweredBefore && !level.isClientSide && this.cooldown == 0) { - if (this.craft(level)) this.cooldown = this.getCooldownDuration(); + if (powered && !this.poweredBefore && !level.isClientSide() && this.cooldown == 0) { + if (this.craft(Util.cast(level))) this.cooldown = this.getCooldownDuration(); } this.poweredBefore = powered; } protected abstract int getCooldownDuration(); - protected boolean canCraft() { - if (this.grid == null || !this.grid.isWorking()) return false; - if (!this.handler.isFilterEnabled()) return true; - for (int i = 0; i < this.handler.getSlots(); i++) { - if (this.handler.getStackInSlot(i).isEmpty() && !this.handler.getFilter(i).isEmpty()) return false; + protected boolean cantCraft() { + if (this.grid == null || !this.grid.isWorking()) return true; + if (!this.handler.isFilterEnabled()) return false; + for (int i = 0; i < this.handler.size(); i++) { + if (this.handler.getResource(i).isEmpty() && !this.handler.getFilter(i).isEmpty()) return true; } - return true; + return false; } - public abstract boolean craft(Level level); + public abstract boolean craft(ServerLevel level); protected boolean ejectItems(ItemStack result, List craftRemaining, Direction direction) { - IItemHandler cap = Objects.requireNonNull(getLevel()).getCapability( - Capabilities.ItemHandler.BLOCK, - getBlockPos().relative(direction), + ResourceHandler cap = Objects.requireNonNull(this.getLevel()).getCapability( + Capabilities.Item.BLOCK, + this.getBlockPos().relative(direction), direction.getOpposite() ); if (cap != null) { @@ -102,20 +108,20 @@ protected boolean ejectItems(ItemStack result, List craftRemaining, D ItemStack remained = ItemHandlerUtil.insertItem(cap, result, true); if (!remained.isEmpty()) return true; remained = ItemHandlerUtil.insertItem(cap, result, false); - ejectItem(remained); + this.ejectItem(remained); for (ItemStack stack : craftRemaining) { remained = ItemHandlerUtil.insertItem(cap, stack, false); - ejectItem(remained); + this.ejectItem(remained); } } else { // 尝试向世界喷出物品 - Vec3 center = getBlockPos().relative(getDirection()).getCenter(); + Vec3 center = this.getBlockPos().relative(this.getDirection()).getCenter(); AABB aabb = new AABB(center.add(-0.125, -0.125, -0.125), center.add(0.125, 0.125, 0.125)); - if (!getLevel().noCollision(aabb)) return true; + if (!this.getLevel().noCollision(aabb)) return true; - ejectItem(result); + this.ejectItem(result); for (ItemStack stack : craftRemaining) { - ejectItem(stack); + this.ejectItem(stack); } } return false; @@ -151,6 +157,11 @@ private void ejectItemEntity(ItemStack stack) { level.addFreshEntity(itemEntity); } + @Override + public void preRemoveSideEffects(BlockPos pos, BlockState state) { + ItemHandlerUtil.dropAllToPos(this.getItemHandler(), this.level, pos.getCenter()); + } + @Nullable @Override public Packet getUpdatePacket() { @@ -163,30 +174,24 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registries) { } @Override - public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.loadAdditional(tag, provider); - this.handler.deserializeNBT(provider, tag.getCompound("Inventory")); - this.poweredBefore = tag.getBoolean("PoweredBefore"); - this.cooldown = tag.getInt("Cooldown"); - if (!tag.getBoolean("HasDisplayItemStack") || !tag.contains("ResultItemStack")) return; - CompoundTag rawResult = tag.getCompound("ResultItemStack"); - this.displayingStack = rawResult.contains("id") - ? ItemStack.parse(provider, rawResult).orElse(ItemStack.EMPTY) - : ItemStack.EMPTY; + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + this.handler.serialize(output.child("Inventory")); + output.putBoolean("PoweredBefore", this.poweredBefore); + output.putInt("Cooldown", this.cooldown); + boolean displaying = this.displayingStack != null && !this.displayingStack.isEmpty(); + output.putBoolean("HasDisplayItemStack", displaying); + if (displaying) output.store("ResultItemStack", ItemStack.OPTIONAL_CODEC, this.displayingStack); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { - super.saveAdditional(tag, provider); - tag.put("Inventory", this.handler.serializeNBT(provider)); - tag.putBoolean("PoweredBefore", this.poweredBefore); - tag.putInt("Cooldown", this.cooldown); - boolean displaying = this.displayingStack != null && !this.displayingStack.isEmpty(); - tag.putBoolean("HasDisplayItemStack", displaying); - if (displaying) { - CompoundTag rawResult = (CompoundTag) this.displayingStack.save(provider); - tag.put("ResultItemStack", rawResult); - } + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.handler.deserialize(input.childOrEmpty("Inventory")); + this.poweredBefore = input.getBooleanOr("PoweredBefore", false); + this.cooldown = input.getIntOr("Cooldown", 0); + if (!input.getBooleanOr("HasDisplayItemStack", false)) return; + this.displayingStack = input.read("ResultItemStack", ItemStack.OPTIONAL_CODEC).orElse(ItemStack.EMPTY); } @Override @@ -215,36 +220,35 @@ public void setDirection(Direction direction) { public int getRedstoneSignal() { int strength = 0; List itemIdxList = new IntArrayList(); - for (int index = 0; index < this.handler.getSlots(); index++) { - ItemStack itemStack = this.handler.getStackInSlot(index); + for (int index = 0; index < this.handler.size(); index++) { if (this.handler.isSlotDisabled(index) && this.handler.getFilter(index).isEmpty()) { // 槽位为未设置过滤的已禁用槽位 strength++; - } else if (!itemStack.isEmpty()) { // 槽位上有物品 + } else if (!this.handler.getResource(index).isEmpty()) { // 槽位上有物品 strength++; itemIdxList.add(index); } } - if (strength < this.handler.getSlots()) return strength; + if (strength < this.handler.size()) return strength; // 找到数量最少的序号 int minIdx = itemIdxList.stream() - .min(Comparator.comparingInt(idx -> this.handler.getStackInSlot(idx).getCount())) + .min(Comparator.comparingInt(this.handler::getAmountAsInt)) .orElse(-1); // 不存在说明全是锁住的格子 -> 15 if (minIdx == -1) return 15; // 考虑这个物品的堆叠上限,计算满堆比例 - ItemStack stack = this.handler.getStackInSlot(minIdx); - int maxStack = stack.getMaxStackSize(); - int count = stack.getCount(); - if (maxStack <= 1) { + ItemResource resource = this.handler.getResource(minIdx); + int count = this.handler.getAmountAsInt(minIdx); + int maxSize = this.handler.getCapacityAsInt(minIdx, resource); + if (maxSize <= 1) { return 15; - } else if (maxStack == 2) { + } else if (maxSize == 2) { return count == 1 ? 9 : 15; } int range = 6; - return count == 1 ? 9 : 9 + ((count - 2) * (range - 1) + (maxStack - 2)) / (maxStack - 2); + return count == 1 ? 9 : 9 + ((count - 2) * (range - 1) + (maxSize - 2)) / (maxSize - 2); } @Override @@ -263,7 +267,7 @@ public FilteredItemStackHandler getFilteredItemStackHandler() { } @Override - public IItemHandler getItemHandler() { + public ResourceHandler getItemHandler() { return this.handler; } @@ -273,16 +277,15 @@ public BlockPos getPos() { } @Override - public void storeDiskData(CompoundTag tag) { - tag.put("Filtering", handler.serializeFiltering()); + public void storeDiskData(ValueOutput output) { + this.handler.serializeFiltering(output.child("Filtering")); } @Override - public void applyDiskData(CompoundTag data) { - handler.deserializeFiltering(data.getCompound("Filtering")); - this.setChanged(); - if (level != null && !level.isClientSide) { - level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); + public void applyDiskData(ValueInput input) { + this.handler.deserializeFiltering(input.childOrEmpty("Filtering")); + if (this.level != null && !this.level.isClientSide()) { + this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), Block.UPDATE_ALL); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCrafterBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCrafterBlockEntity.java index 675d908245..762e031013 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCrafterBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCrafterBlockEntity.java @@ -1,5 +1,6 @@ package dev.dubhe.anvilcraft.block.entity.batch; +import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.itemhandler.PollableFilteredItemStackHandler; import dev.dubhe.anvilcraft.init.ModMenuTypes; @@ -9,24 +10,28 @@ import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; 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.AbstractContainerMenu; import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.CraftingRecipe; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.ItemUtil; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.Nullable; import java.util.ArrayDeque; import java.util.Deque; @@ -50,7 +55,7 @@ public BatchCrafterBlockEntity(BlockEntityType type, Bloc protected PollableFilteredItemStackHandler constructHandler() { return new PollableFilteredItemStackHandler(9) { @Override - public void onContentsChanged(int slot) { + protected void onContentsChanged(int index, ItemStack previousContents) { BatchCrafterBlockEntity.this.onContentsChanged(); } }; @@ -62,39 +67,36 @@ protected int getCooldownDuration() { } private void onContentsChanged() { - if (this.level == null) { + if (this.level == null || this.level.isClientSide()) { this.setChanged(); return; } - - RecipeManager manager = this.level.getRecipeManager(); + + ServerLevel level = Util.cast(this.level); + RecipeManager manager = level.recipeAccess(); + CraftingInput input = this.dummyCraftingContainer.asCraftInput(); Optional> recipeOp = manager.getRecipeFor( RecipeType.CRAFTING, - this.dummyCraftingContainer.asCraftInput(), - this.level + input, + level ); - this.updateDisplayItem(recipeOp.map( - recipe -> recipe.value() - .getResultItem(this.level.registryAccess()) - ).orElse(ItemStack.EMPTY)); + this.updateDisplayItem(recipeOp.map(recipe -> recipe.value().assemble(input)).orElse(ItemStack.EMPTY)); - if (!this.level.isClientSide) { - PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket( - this.getDisplayingStack(), - this.getPos() - )); - } + PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket( + this.getDisplayingStack(), + this.getPos() + )); this.setChanged(); } @Override - public boolean craft(Level level) { + public boolean craft(ServerLevel level) { if (this.craftingContainer.isEmpty()) return false; - if (!this.canCraft()) return false; + if (this.cantCraft()) return false; ItemStack result; Optional cacheOp = this.cache.stream() - .filter(recipe -> recipe.test(craftingContainer)) + .filter(recipe -> recipe.test(this.craftingContainer)) .findFirst(); Optional> holderOp; List craftRemaining; @@ -103,10 +105,10 @@ public boolean craft(Level level) { holderOp = crafterCache.getRecipe(); craftRemaining = crafterCache.getRemaining(); } else { - holderOp = level.getRecipeManager() - .getRecipeFor(RecipeType.CRAFTING, this.craftingContainer.asCraftInput(), level); - NonNullList remainingItems = level.getRecipeManager() - .getRemainingItemsFor(RecipeType.CRAFTING, this.craftingContainer.asCraftInput(), level); + CraftingInput input = this.craftingContainer.asCraftInput(); + holderOp = level.recipeAccess().getRecipeFor(RecipeType.CRAFTING, input, level); + NonNullList remainingItems = holderOp.map(recipe -> recipe.value().getRemainingItems(input)) + .orElse(NonNullList.create()); BatchCrafterCache cache = new BatchCrafterCache(this.craftingContainer, holderOp, remainingItems); craftRemaining = remainingItems; this.cache.push(cache); @@ -116,13 +118,13 @@ public boolean craft(Level level) { } if (holderOp.isEmpty()) return false; - result = holderOp.get().value().assemble(this.craftingContainer.asCraftInput(), level.registryAccess()); + result = holderOp.get().value().assemble(this.craftingContainer.asCraftInput()); this.displayingStack = result.copy(); - if (!level.isClientSide) PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket(this.displayingStack, this.getPos())); + if (!level.isClientSide()) PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket(this.displayingStack, this.getPos())); if (!result.isItemEnabled(level.enabledFeatures())) return false; - int times = IntStream.range(0, this.handler.getSlots()) - .mapToObj(this.handler::getStackInSlot) + int times = IntStream.range(0, this.handler.size()) + .mapToObj(i -> ItemUtil.getStack(this.handler, i)) .filter((s -> !s.isEmpty())) .mapToInt(ItemStack::getCount) .min() @@ -135,8 +137,11 @@ public boolean craft(Level level) { .collect(Collectors.toList()); } if (this.ejectItems(result, craftRemaining, this.getDirection())) return false; - for (int i = 0; i < this.handler.getSlots(); i++) { - this.handler.extractItem(i, times, false); + for (int i = 0; i < this.handler.size(); i++) { + try (Transaction transaction = Transaction.openRoot()) { + this.handler.extract(i, this.handler.getResource(i), times, transaction); + transaction.commit(); + } } level.updateNeighborsAt(this.getBlockPos(), ModBlocks.BATCH_CRAFTER.get()); return true; @@ -210,7 +215,7 @@ public List getItems() { @Override public int getContainerSize() { - return BatchCrafterBlockEntity.this.handler.getSlots(); + return BatchCrafterBlockEntity.this.handler.size(); } @Override @@ -220,26 +225,31 @@ public boolean isEmpty() { @Override public ItemStack getItem(int slot) { - return BatchCrafterBlockEntity.this.handler.getStackInSlot(slot); + return ItemUtil.getStack(BatchCrafterBlockEntity.this.handler, slot); } @Override public ItemStack removeItem(int slot, int amount) { - ItemStack stack = BatchCrafterBlockEntity.this.handler.extractItem(slot, amount, false); + ItemStack stack = ItemStack.EMPTY; + try (Transaction transaction = Transaction.openRoot()) { + ItemResource resource = BatchCrafterBlockEntity.this.handler.getResource(slot); + int extracted = BatchCrafterBlockEntity.this.handler.extract(slot, resource, amount, transaction); + if (extracted > 0) stack = resource.toStack(extracted); + } BatchCrafterBlockEntity.this.setChanged(); return stack; } @Override public ItemStack removeItemNoUpdate(int slot) { - ItemStack stack = BatchCrafterBlockEntity.this.handler.getStackInSlot(slot); - BatchCrafterBlockEntity.this.handler.setStackInSlot(slot, ItemStack.EMPTY); + ItemStack stack = ItemUtil.getStack(BatchCrafterBlockEntity.this.handler, slot); + BatchCrafterBlockEntity.this.handler.set(slot, ItemResource.EMPTY, 0); return stack; } @Override public void setItem(int slot, ItemStack stack) { - BatchCrafterBlockEntity.this.handler.setStackInSlot(slot, stack); + BatchCrafterBlockEntity.this.handler.set(slot, ItemResource.of(stack), stack.getCount()); } @Override @@ -260,7 +270,7 @@ public void clearContent() { } @Override - public void fillStackedContents(StackedContents contents) { + public void fillStackedContents(StackedItemContents contents) { for (int i = 0; i < this.getContainerSize(); i++) { ItemStack itemStack = this.getItem(i); contents.accountSimpleStack(itemStack); @@ -291,7 +301,7 @@ public List getItems() { @Override public int getContainerSize() { - return BatchCrafterBlockEntity.this.handler.getSlots(); + return BatchCrafterBlockEntity.this.handler.size(); } @Override @@ -304,7 +314,7 @@ public boolean isEmpty() { @Override public ItemStack getItem(int slot) { - ItemStack stack = BatchCrafterBlockEntity.this.handler.getStackInSlot(slot); + ItemStack stack = ItemUtil.getStack(BatchCrafterBlockEntity.this.handler, slot); if (stack.isEmpty()) stack = BatchCrafterBlockEntity.this.handler.getFilter(slot); return stack; } @@ -338,7 +348,7 @@ public void clearContent() { } @Override - public void fillStackedContents(StackedContents contents) { + public void fillStackedContents(StackedItemContents contents) { for (int i = 0; i < this.getContainerSize(); i++) { ItemStack itemStack = this.getItem(i); contents.accountSimpleStack(itemStack); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCutterBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCutterBlockEntity.java index e29d18597c..e6b3a52838 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCutterBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/BatchCutterBlockEntity.java @@ -1,5 +1,6 @@ package dev.dubhe.anvilcraft.block.entity.batch; +import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.itemhandler.PollableFilteredItemStackHandler; import dev.dubhe.anvilcraft.init.ModMenuTypes; @@ -7,10 +8,11 @@ import dev.dubhe.anvilcraft.inventory.BatchCutterMenu; import dev.dubhe.anvilcraft.network.BatchCutterSelectPacket; import dev.dubhe.anvilcraft.network.UpdateDisplayItemPacket; +import dev.dubhe.anvilcraft.recipe.sync.RecipesRecord; import lombok.AccessLevel; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.NonNullList; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; @@ -27,7 +29,9 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.item.ItemUtil; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.Nullable; import java.util.ArrayDeque; import java.util.ArrayList; @@ -52,7 +56,7 @@ public BatchCutterBlockEntity(BlockEntityType type, Block protected PollableFilteredItemStackHandler constructHandler() { return new PollableFilteredItemStackHandler(1) { @Override - public void onContentsChanged(int slot) { + protected void onContentsChanged(int index, ItemStack previousContents) { BatchCutterBlockEntity.this.onContentsChanged(); } }; @@ -65,80 +69,79 @@ protected int getCooldownDuration() { private void onContentsChanged() { if (this.level == null) { - this.setChanged(); return; } - - RecipeManager manager = this.level.getRecipeManager(); - List> recipes = manager.getRecipesFor(RecipeType.STONECUTTING, this.createDummyInput(), this.level); + + SingleRecipeInput input = this.createDummyInput(); + List> recipes = new ArrayList<>(); + for (RecipeHolder holder : RecipesRecord.RECIPES.byType(RecipeType.STONECUTTING)) { + if (holder.value().matches(input, level)) { + recipes.add(holder); + } + } if (recipes.isEmpty()) { this.updateDisplayItem(ItemStack.EMPTY); } else if (this.selecting >= recipes.size()) { this.selecting = 0; - if (!this.level.isClientSide) { - PacketDistributor.sendToAllPlayers(new BatchCutterSelectPacket( - this.selecting, - this.getPos() - )); - } - this.updateDisplayItem(recipes.get(this.selecting).value().getResultItem(this.level.registryAccess())); - } else { - this.updateDisplayItem(recipes.get(this.selecting).value().getResultItem(this.level.registryAccess())); - } - - if (!this.level.isClientSide) { - PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket( - this.getDisplayingStack(), + PacketDistributor.sendToAllPlayers(new BatchCutterSelectPacket( + this.selecting, this.getPos() )); + this.updateDisplayItem(recipes.get(this.selecting).value().assemble(input)); + } else { + this.updateDisplayItem(recipes.get(this.selecting).value().assemble(input)); } + + PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket( + this.getDisplayingStack(), + this.getPos() + )); this.setChanged(); } @Override - public boolean craft(Level level) { + public boolean craft(ServerLevel level) { if (this.handler.isEmpty()) return false; - if (!this.canCraft()) return false; - - BatchCutterCache cache = this.findCache(); + if (this.cantCraft()) return false; + + BatchCutterCache cache = this.findCache(level); List> recipes = cache.getRecipes(); if (recipes.isEmpty()) return false; if (this.selecting >= recipes.size()) { this.selecting = 0; - if (!level.isClientSide) { - PacketDistributor.sendToAllPlayers(new BatchCutterSelectPacket( - this.selecting, - this.getPos() - )); - } + PacketDistributor.sendToAllPlayers(new BatchCutterSelectPacket( + this.selecting, + this.getPos() + )); } - ItemStack result = recipes.get(this.selecting).value().assemble(this.createInput(), level.registryAccess()); + ItemStack result = recipes.get(this.selecting).value().assemble(this.createInput()); this.displayingStack = result.copy(); - if (!level.isClientSide) PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket(this.displayingStack, this.getPos())); + if (!level.isClientSide()) { + PacketDistributor.sendToAllPlayers(new UpdateDisplayItemPacket(this.displayingStack, this.getPos())); + } if (!result.isItemEnabled(level.enabledFeatures())) return false; - int times = IntStream.range(0, this.handler.getSlots()) - .mapToObj(this.handler::getStackInSlot) + int times = IntStream.range(0, this.handler.size()) + .mapToObj(i -> ItemUtil.getStack(this.handler, i)) .filter((s -> !s.isEmpty())) .mapToInt(ItemStack::getCount) .min() .orElse(0); if (times < 1) return false; result.setCount(result.getCount() * times); - List craftRemaining = new ArrayList<>(cache.getRemaining().size()); - for (ItemStack stack : cache.getRemaining()) { - craftRemaining.add(stack.copyWithCount(stack.getCount() * times)); - } - if (this.ejectItems(result, craftRemaining, this.getDirection())) return false; - for (int i = 0; i < this.handler.getSlots(); i++) { - this.handler.extractItem(i, times, false); + if (this.ejectItems(result, List.of(), this.getDirection())) return false; + for (int i = 0; i < this.handler.size(); i++) { + try (Transaction transaction = Transaction.openRoot()) { + this.handler.extract(i, this.handler.getResource(i), times, transaction); + transaction.commit(); + } } level.updateNeighborsAt(this.getBlockPos(), ModBlocks.BATCH_CUTTER.get()); return true; } - private BatchCutterCache findCache() { + private BatchCutterCache findCache(Level level) { Optional cacheOp = this.cache.stream() .filter(recipe -> recipe.test(this.handler)) .findFirst(); @@ -146,11 +149,11 @@ private BatchCutterCache findCache() { return cacheOp.get(); } else { SingleRecipeInput input = this.createInput(); - List> recipes = this.level.getRecipeManager() - .getRecipesFor(RecipeType.STONECUTTING, input, this.level); - NonNullList remainingItems = this.level.getRecipeManager() - .getRemainingItemsFor(RecipeType.STONECUTTING, input, this.level); - BatchCutterCache cache = new BatchCutterCache(this.handler, recipes, remainingItems); + List> recipes = RecipesRecord.RECIPES.byType(RecipeType.STONECUTTING) + .stream() + .filter(holder -> holder.value().matches(input, level)) + .toList(); + BatchCutterCache cache = new BatchCutterCache(this.handler, recipes); this.cache.push(cache); while (this.cache.size() >= 10) { this.cache.pop(); @@ -158,13 +161,13 @@ private BatchCutterCache findCache() { return cache; } } - + public SingleRecipeInput createInput() { - return new SingleRecipeInput(this.handler.getStackInSlot(0)); + return new SingleRecipeInput(ItemUtil.getStack(this.handler, 0)); } public SingleRecipeInput createDummyInput() { - ItemStack stack = this.handler.getStackInSlot(0); + ItemStack stack = ItemUtil.getStack(this.handler, 0); if (stack.isEmpty()) stack = this.handler.getFilter(0); return new SingleRecipeInput(stack); } @@ -178,27 +181,25 @@ public AbstractContainerMenu createMenu(int i, Inventory inventory, Player playe public void setSelecting(int selecting) { this.selecting = selecting; - - List> recipes = this.findCache().getRecipes(); + if (this.level == null) return; + List> recipes = this.findCache(this.level).getRecipes(); if (recipes.isEmpty()) { this.updateDisplayItem(ItemStack.EMPTY); } else if (this.selecting >= recipes.size()) { this.selecting = 0; - if (!this.level.isClientSide) { + if (!this.level.isClientSide()) { PacketDistributor.sendToAllPlayers(new BatchCutterSelectPacket( this.selecting, this.getPos() )); } - this.updateDisplayItem(recipes.get(this.selecting).value().getResultItem(this.level.registryAccess())); + this.updateDisplayItem(recipes.get(this.selecting).value().assemble(this.createDummyInput())); return; } else { - this.updateDisplayItem(recipes.get(this.selecting).value().getResultItem(this.level.registryAccess())); + this.updateDisplayItem(recipes.get(this.selecting).value().assemble(this.createDummyInput())); } - if (!this.level.isClientSide) { - PacketDistributor.sendToAllPlayers(new BatchCutterSelectPacket(this.selecting, this.getPos())); - } + PacketDistributor.sendToAllPlayers(new BatchCutterSelectPacket(this.selecting, this.getPos())); } @Getter @@ -206,35 +207,33 @@ public static class BatchCutterCache implements Predicate> recipes; - private final NonNullList remaining; /** * 合成器缓存 * * @param container 容器 - * @param recipes 配方 - * @param remaining 返还物品 + * @param recipes 配方 */ public BatchCutterCache( PollableFilteredItemStackHandler container, - List> recipes, - NonNullList remaining + List> recipes ) { - this.container = new SimpleContainer(container.getSlots()); - for (int i = 0; i < container.getSlots(); i++) { - ItemStack item = container.getStackInSlot(i).copy(); + this.container = new SimpleContainer(container.size()); + for (int i = 0; i < container.size(); i++) { + ItemStack item = ItemUtil.getStack(container, i).copy(); item.setCount(1); this.container.setItem(i, item); } this.recipes = recipes; - this.remaining = remaining; } @Override public boolean test(PollableFilteredItemStackHandler container) { - if (container.getSlots() != this.container.getContainerSize()) return false; + if (container.size() != this.container.getContainerSize()) return false; for (int i = 0; i < this.container.getContainerSize(); i++) { - if (!ItemStack.isSameItemSameComponents(container.getStackInSlot(i), this.container.getItem(i))) return false; + if (!ItemStack.isSameItemSameComponents(ItemUtil.getStack(container, i), this.container.getItem(i))) { + return false; + } } return true; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/package-info.java index c7936dea44..4fbf02ab10 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/batch/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.entity.batch; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/HeatableBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/HeatableBlockEntity.java index 53270dead8..cdb0cdaf6e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/HeatableBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/HeatableBlockEntity.java @@ -6,14 +6,14 @@ import dev.dubhe.anvilcraft.network.HeatableSyncPacket; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; 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.network.PacketDistributor; import java.util.Optional; @@ -43,7 +43,7 @@ public void setDuration(int duration) { this.setChanged(); if (this.level == null || this.level.getGameTime() % 10 != 0) return; if (this.level instanceof ServerLevel serverLevel) { - PacketDistributor.sendToPlayersTrackingChunk(serverLevel, new ChunkPos(this.getBlockPos()), + PacketDistributor.sendToPlayersTrackingChunk(serverLevel, ChunkPos.containing(this.getBlockPos()), new HeatableSyncPacket(this.getBlockPos(), duration)); } } @@ -55,15 +55,15 @@ public int getSignal() { } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putInt("duration", this.duration); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("duration", this.duration); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.duration = tag.getInt("duration"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.duration = input.getIntOr("duration", 0); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/package-info.java index e359dc5da4..cda017808a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/heatable/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.entity.heatable; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/BaseNestingShulkerBoxBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/BaseNestingShulkerBoxBlockEntity.java index ee5a3f31a0..42d0ae85ed 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/BaseNestingShulkerBoxBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/BaseNestingShulkerBoxBlockEntity.java @@ -1,26 +1,29 @@ package dev.dubhe.anvilcraft.block.entity.nesting; -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; +import dev.dubhe.anvilcraft.api.itemhandler.IItemResourceHandlerHolder; import dev.dubhe.anvilcraft.api.itemhandler.OverLimitItemHandler; import dev.dubhe.anvilcraft.init.item.ModComponents; import dev.dubhe.anvilcraft.item.property.component.OverLimitItemContainerContents; import lombok.Getter; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentGetter; import net.minecraft.core.component.DataComponentMap; import net.minecraft.core.component.DataComponents; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentSerialization; import net.minecraft.world.Nameable; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.items.IItemHandler; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; -import javax.annotation.Nullable; +import java.util.Optional; -public abstract class BaseNestingShulkerBoxBlockEntity extends BlockEntity implements IItemHandlerHolder, Nameable { +public abstract class BaseNestingShulkerBoxBlockEntity extends BlockEntity implements IItemResourceHandlerHolder, Nameable { @Getter private final OverLimitItemHandler items; @Nullable @@ -32,25 +35,29 @@ public BaseNestingShulkerBoxBlockEntity(int baseLimit, BlockEntityType type, } @Override - public IItemHandler getItemHandler() { + public ResourceHandler getItemHandler() { return this.items; } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.items.deserializeNBT(registries, tag); - if (tag.contains("CustomName", Tag.OBJECT_HEADER)) { - this.name = parseCustomNameSafe(tag.getString("CustomName"), registries); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.items.deserialize(input); + Optional customName = input.child("custom_name"); + + if (customName.isPresent()) { + this.name = parseCustomNameSafe(input, "custom_name"); } + super.loadAdditional(input); } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.merge(this.items.serializeNBT(registries)); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + this.items.serialize(output); + super.saveAdditional(output); if (this.name != null) { - tag.putString("CustomName", Component.Serializer.toJson(this.name, registries)); + output.storeNullable("custom_name", ComponentSerialization.CODEC, this.name); } } @@ -73,10 +80,10 @@ public Component getCustomName() { protected abstract Component getDefaultName(); @Override - protected void applyImplicitComponents(DataComponentInput componentInput) { - super.applyImplicitComponents(componentInput); - this.name = componentInput.get(DataComponents.CUSTOM_NAME); - componentInput.getOrDefault(ModComponents.OVER_LIMIT_CONTAINER, OverLimitItemContainerContents.EMPTY) + protected void applyImplicitComponents(DataComponentGetter components) { + super.applyImplicitComponents(components); + this.name = components.get(DataComponents.CUSTOM_NAME); + components.getOrDefault(ModComponents.OVER_LIMIT_CONTAINER, OverLimitItemContainerContents.EMPTY) .copyInto(this.items); } @@ -88,4 +95,4 @@ protected void collectImplicitComponents(DataComponentMap.Builder components) { } components.set(ModComponents.OVER_LIMIT_CONTAINER, OverLimitItemContainerContents.fromItems(this.items)); } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/package-info.java index 00618e6f55..236f0ecdac 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/nesting/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.entity.nesting; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/package-info.java index f32b8bd701..110c189f6f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.entity; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/TimeCountedPressurePlateBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/TimeCountedPressurePlateBlockEntity.java index 2d70e1db3f..bc44f62c6e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/TimeCountedPressurePlateBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/TimeCountedPressurePlateBlockEntity.java @@ -3,14 +3,14 @@ import dev.dubhe.anvilcraft.block.plate.TimeCountedPressurePlateBlock; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import net.minecraft.core.BlockPos; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.entity.EntityTypeTest; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import java.util.List; @@ -33,21 +33,21 @@ public static TimeCountedPressurePlateBlockEntity createBlockEntity(BlockEntityT } @Override - protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.saveAdditional(tag, registries); - tag.putInt("tick", this.tick); - tag.putInt("NeedTick", this.needTick); + protected void saveAdditional(ValueOutput output) { + super.saveAdditional(output); + output.putInt("tick", this.tick); + output.putInt("NeedTick", this.needTick); } @Override - protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { - super.loadAdditional(tag, registries); - this.tick = tag.getInt("tick"); - this.needTick = tag.getInt("NeedTick"); + protected void loadAdditional(ValueInput input) { + super.loadAdditional(input); + this.tick = input.getIntOr("tick", 0); + this.needTick = input.getIntOr("NeedTick", 0); } public int getSignalStrength() { - return Math.clamp(tick / (needTick == 0 ? 1 : needTick), 0, 15); + return Math.clamp(this.tick / (this.needTick == 0 ? 1 : this.needTick), 0, 15); } public void tick(Level level, BlockPos pos) { @@ -55,11 +55,11 @@ public void tick(Level level, BlockPos pos) { if (state.getBlock() instanceof TimeCountedPressurePlateBlock plate) { List entities = level.getEntities(EntityTypeTest.forClass(LivingEntity.class), new AABB(pos), entity -> true); if (!entities.isEmpty()) { - if (tick < plate.needTick * 15) { - tick++; + if (this.tick < plate.needTick * 15) { + this.tick++; } - } else if (tick > 0) { - tick--; + } else if (this.tick > 0) { + this.tick--; } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/package-info.java index c0cd7afea2..06b5c6d027 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/plate/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.entity.plate; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/fluid/ExpFluidBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/fluid/ExpFluidBlock.java new file mode 100644 index 0000000000..63c8e82b75 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/fluid/ExpFluidBlock.java @@ -0,0 +1,36 @@ +package dev.dubhe.anvilcraft.block.fluid; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.InsideBlockEffectApplier; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FlowingFluid; + +public class ExpFluidBlock extends LiquidBlock { + public static final int XP_POINTS = 50; + + public ExpFluidBlock(FlowingFluid fluid, Properties properties) { + super(fluid, properties); + } + + @Override + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + if (level.isClientSide()) return; + if (!level.getFluidState(pos).isSource()) return; + if (entity instanceof Player player) { + player.giveExperiencePoints(XP_POINTS); + level.setBlock(pos, Blocks.AIR.defaultBlockState(), 3); + } + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/MeltGemFluid.java b/src/main/java/dev/dubhe/anvilcraft/block/fluid/MeltGemFluid.java similarity index 98% rename from src/main/java/dev/dubhe/anvilcraft/block/MeltGemFluid.java rename to src/main/java/dev/dubhe/anvilcraft/block/fluid/MeltGemFluid.java index 726f8bc40c..1ad855e20f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/MeltGemFluid.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/fluid/MeltGemFluid.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.fluid; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/fluid/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/fluid/package-info.java new file mode 100644 index 0000000000..94cbe5445d --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/fluid/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.fluid; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/heatable/HeatableBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/heatable/HeatableBlock.java index 4953a9d18e..f445d51d42 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/heatable/HeatableBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/heatable/HeatableBlock.java @@ -13,12 +13,12 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.TntBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.redstone.Orientation; +import org.jspecify.annotations.Nullable; import java.util.Optional; @@ -28,14 +28,14 @@ protected HeatableBlock(Properties properties) { } @Override - @SuppressWarnings("deprecation") protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { super.onPlace(state, level, pos, oldState, movedByPiston); Direction[] directions = Direction.values(); if (HeatRecorder.getTier(level, pos, state).orElse(HeatTier.NORMAL) == HeatTier.NORMAL) return; for (Direction direction : directions) { - if (level.getBlockState(pos.relative(direction)).is(Blocks.TNT)) { - TntBlock.explode(level, pos.relative(direction)); + BlockState tnt = level.getBlockState(pos.relative(direction)); + if (tnt.is(Blocks.TNT)) { + tnt.onCaughtFire(level, pos.relative(direction), direction.getOpposite(), null); level.removeBlock(pos.relative(direction), false); } } @@ -45,9 +45,9 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o protected abstract boolean hasBlockEntity(); public @Nullable BlockEntityTicker getTicker(Level level, BlockState ignored, BlockEntityType ignored1) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; if (!this.hasBlockEntity()) return null; - return (level1, pos, it, it1) -> HeatableBlockEntity.tick(level1, pos); + return (level1, pos, _, _) -> HeatableBlockEntity.tick(level1, pos); } public Optional getPrevTier(Level level, BlockPos pos, BlockState state) { @@ -61,7 +61,7 @@ protected boolean hasAnalogOutputSignal(BlockState state) { } @Override - protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { if (!this.hasBlockEntity()) return 0; return Util.castSafely(level.getBlockEntity(pos), HeatableBlockEntity.class) .map(HeatableBlockEntity::getSignal) @@ -87,21 +87,23 @@ public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable L } @Override - @SuppressWarnings("deprecation") protected void neighborChanged( BlockState state, Level level, BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, + Block block, + @Nullable Orientation orientation, boolean movedByPiston ) { - if (level.getBlockState(neighborPos).is(Blocks.TNT) - && HeatRecorder.getTier(level, pos, state).orElse(HeatTier.NORMAL) != HeatTier.NORMAL - ) { - TntBlock.explode(level, neighborPos); - level.removeBlock(neighborPos, false); + if (HeatRecorder.getTier(level, pos, state).orElse(HeatTier.NORMAL) == HeatTier.NORMAL) return; + for (Direction direction : Direction.values()) { + BlockPos neighbourPos = pos.relative(direction); + BlockState tnt = level.getBlockState(neighbourPos); + if (tnt.is(Blocks.TNT)) { + tnt.onCaughtFire(level, neighbourPos, direction.getOpposite(), null); + level.removeBlock(neighbourPos, false); + } } - super.neighborChanged(state, level, pos, neighborBlock, neighborPos, movedByPiston); + super.neighborChanged(state, level, pos, block, orientation, movedByPiston); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/heatable/OverheatedEmberMetalBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/heatable/OverheatedEmberMetalBlock.java index 2fbc73acc2..adb99bd526 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/heatable/OverheatedEmberMetalBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/heatable/OverheatedEmberMetalBlock.java @@ -15,7 +15,7 @@ public OverheatedEmberMetalBlock(Properties properties) { @Override public Optional getPrevTier(Level level, BlockPos pos, BlockState state) { - if (level.random.nextFloat() <= 0.05f) return Optional.of(Blocks.NETHERITE_BLOCK.defaultBlockState()); + if (level.getRandom().nextFloat() <= 0.05F) return Optional.of(Blocks.NETHERITE_BLOCK.defaultBlockState()); return super.getPrevTier(level, pos, state); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/heatable/RedhotBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/heatable/RedhotBlock.java index a448cea194..f54290e717 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/heatable/RedhotBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/heatable/RedhotBlock.java @@ -1,6 +1,7 @@ package dev.dubhe.anvilcraft.block.heatable; import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; +import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.block.entity.heatable.HeatableBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import net.minecraft.core.BlockPos; @@ -9,6 +10,7 @@ import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.RandomSource; +import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.level.Level; @@ -46,9 +48,16 @@ public HeatableBlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Override public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { - if (!entity.isSteppingCarefully() - && entity instanceof LivingEntity) { - entity.hurt(level.damageSources().hotFloor(), this.steppingDamage); + if ( + !entity.isSteppingCarefully() + && entity instanceof LivingEntity + ) { + DamageSource source = level.damageSources().hotFloor(); + if (level.isClientSide()) { + entity.hurtClient(source); + } else { + entity.hurtServer(Util.cast(level), source, this.steppingDamage); + } } super.stepOn(level, pos, state, entity); } @@ -78,20 +87,20 @@ private boolean removeWaterBreadthFirstSearch(Level level, BlockPos pos) { } }, posx -> { - if (posx.equals(pos)) return true; + if (posx.equals(pos)) return BlockPos.TraversalNodeStatus.SKIP; BlockState state = level.getBlockState(posx); FluidState fluidState = level.getFluidState(posx); - if (!fluidState.is(Fluids.WATER)) return false; + if (!fluidState.is(Fluids.WATER)) return BlockPos.TraversalNodeStatus.SKIP; if ( state.getBlock() instanceof BucketPickup bucketpickup && !bucketpickup.pickupBlock(null, level, posx, state).isEmpty() ) { - return true; + return BlockPos.TraversalNodeStatus.ACCEPT; } if (state.getBlock() instanceof LiquidBlock) { level.setBlock(posx, Blocks.AIR.defaultBlockState(), 3); - return true; + return BlockPos.TraversalNodeStatus.ACCEPT; } if ( @@ -100,15 +109,15 @@ private boolean removeWaterBreadthFirstSearch(Level level, BlockPos pos) { && !state.is(Blocks.SEAGRASS) && !state.is(Blocks.TALL_SEAGRASS) ) { - return false; + return BlockPos.TraversalNodeStatus.SKIP; } BlockEntity blockentity = state.hasBlockEntity() ? level.getBlockEntity(posx) : null; dropResources(state, level, posx, blockentity); level.setBlock(posx, Blocks.AIR.defaultBlockState(), 3); - return true; + return BlockPos.TraversalNodeStatus.ACCEPT; } - ) > 1; + ) > 0; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/heatable/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/heatable/package-info.java index 566f9cd690..a11da046bb 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/heatable/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/heatable/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.heatable; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/ChuteBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/item/ChuteBlockItem.java deleted file mode 100644 index f8d9c2c577..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/ChuteBlockItem.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.dubhe.anvilcraft.block.item; - -import dev.dubhe.anvilcraft.api.itemhandler.IItemHandlerHolder; -import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.neoforged.neoforge.capabilities.Capabilities; - -public class ChuteBlockItem extends BlockItem { - public ChuteBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { - Level level = context.getLevel(); - BlockPos pos = context.getClickedPos(); - return level.getBlockEntity(pos) instanceof IItemHandlerHolder || level.getCapability( - Capabilities.ItemHandler.BLOCK, context.getClickedPos(), context.getClickedFace() - ) != null ? this.useOn(context) : super.onItemUseFirst(stack, context); - } -} \ No newline at end of file diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/CursedBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/item/CursedBlockItem.java deleted file mode 100644 index 6d1e765182..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/CursedBlockItem.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.dubhe.anvilcraft.block.item; - -import dev.dubhe.anvilcraft.item.abnormal.ICursed; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; - -public class CursedBlockItem extends BlockItem implements ICursed { - public CursedBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) { - super.inventoryTick(stack, level, entity, slotId, isSelected); - ICursed.super.inventoryTick(stack, level, entity, slotId, isSelected); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/EndDustBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/item/EndDustBlockItem.java deleted file mode 100644 index 7ac5363edb..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/EndDustBlockItem.java +++ /dev/null @@ -1,42 +0,0 @@ -package dev.dubhe.anvilcraft.block.item; - -import net.minecraft.core.BlockPos; -import net.minecraft.tags.BlockTags; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.level.ClipContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.phys.BlockHitResult; - -public class EndDustBlockItem extends BlockItem { - public EndDustBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public InteractionResultHolder use( - Level level, Player player, InteractionHand usedHand) { - BlockPos blockPos = level.clip(new ClipContext( - player.getEyePosition(1f), - player.getEyePosition(1f).add(player.getViewVector(1f).scale(2.5)), - ClipContext.Block.OUTLINE, - ClipContext.Fluid.NONE, - player)) - .getBlockPos(); - ItemStack itemStack = player.getItemInHand(usedHand); - - if (!(level.getBlockState(blockPos).is(BlockTags.REPLACEABLE))) return InteractionResultHolder.fail(itemStack); - BlockHitResult blockHitResult = - new BlockHitResult(blockPos.getCenter(), player.getDirection(), blockPos, false); - BlockPlaceContext blockPlaceContext = new BlockPlaceContext(level, player, usedHand, itemStack, blockHitResult); - if (!this.canPlace(blockPlaceContext, this.getBlock().defaultBlockState())) return InteractionResultHolder.fail(itemStack); - if (this.place(blockPlaceContext) == InteractionResult.FAIL) return InteractionResultHolder.fail(itemStack); - return InteractionResultHolder.success(itemStack); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/HasMobBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/item/HasMobBlockItem.java deleted file mode 100644 index 42a9b90341..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/HasMobBlockItem.java +++ /dev/null @@ -1,157 +0,0 @@ -package dev.dubhe.anvilcraft.block.item; - -import dev.dubhe.anvilcraft.AnvilCraft; -import dev.dubhe.anvilcraft.block.entity.HasMobBlockEntity; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.item.property.component.SavedEntity; -import net.minecraft.ChatFormatting; -import net.minecraft.core.BlockPos; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.ai.memory.MemoryModuleType; -import net.minecraft.world.entity.monster.Monster; -import net.minecraft.world.entity.npc.Villager; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Optional; - -public class HasMobBlockItem extends BlockItem { - public HasMobBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public void verifyComponentsAfterLoad(ItemStack stack) { - super.verifyComponentsAfterLoad(stack); - if (stack.has(ModComponents.SAVED_ENTITY)) return; - if ( - !stack.is(ModBlocks.MOB_AMBER_BLOCK.asItem()) - && !stack.is(ModBlocks.RESENTFUL_AMBER_BLOCK.asItem()) - ) { - return; - } - ResourceLocation id; - boolean isMonster = false; - if (stack.is(ModBlocks.RESENTFUL_AMBER_BLOCK.asItem())) { - isMonster = true; - id = BuiltInRegistries.ENTITY_TYPE.getKey(EntityType.ZOMBIE); - } else { - id = BuiltInRegistries.ENTITY_TYPE.getKey(EntityType.MOOSHROOM); - } - CompoundTag tag = new CompoundTag(); - tag.putString("id", id.toString()); - SavedEntity savedEntity = new SavedEntity(tag, isMonster); - stack.set(ModComponents.SAVED_ENTITY, savedEntity); - } - - @Override - public void appendHoverText( - ItemStack stack, - Item.TooltipContext context, - List tooltipComponents, - TooltipFlag isAdvanced - ) { - super.appendHoverText(stack, context, tooltipComponents, isAdvanced); - if (!HasMobBlockItem.hasMob(stack)) return; - Optional.ofNullable(context.level()) - .map(level -> HasMobBlockItem.getMobFromItem(level, stack)) - .ifPresent(entity -> tooltipComponents.add( - Component.literal("- ").append(entity.getDisplayName()).withStyle(ChatFormatting.DARK_GRAY))); - } - - @Override - protected boolean updateCustomBlockEntityTag(BlockPos pos, Level level, @Nullable Player player, ItemStack stack, BlockState state) { - if (hasMob(stack)) { - BlockEntity be = level.getBlockEntity(pos); - if (be instanceof HasMobBlockEntity hmbe) { - hmbe.setEntity(getMobFromItem(level, stack)); - } - } - return super.updateCustomBlockEntityTag(pos, level, player, stack, state); - } - - public static boolean hasMob(ItemStack stack) { - return stack.has(ModComponents.SAVED_ENTITY); - } - - /** - * 获取物品中的实体 - */ - public static @Nullable Entity getMobFromItem(Level level, ItemStack stack) { - if (!hasMob(stack)) return null; - SavedEntity savedEntity = stack.get(ModComponents.SAVED_ENTITY); - // make idea happy - if (savedEntity == null) return null; - return savedEntity.toEntity(level); - } - - @SuppressWarnings("deprecation") - public static ItemStack saveMobInItem(Level level, Mob entity, @Nullable Player player, ItemStack stack) { - if (level.isClientSide()) { - if (player == null) AnvilCraft.LOGGER.warn("why a dispenser run saveMobInItem in client side???"); - Item item = stack.getItem(); - if (item instanceof ResinBlockItem item1) { - BlockPos blockPos = entity.getOnPos(); - BlockState blockState = item1.getBlock().defaultBlockState(); - SoundType soundType = blockState.getSoundType(); - level.playSound( - player, - blockPos, - item1.getPlaceSound(blockState), - SoundSource.BLOCKS, - (soundType.getVolume() + 1.0f) / 2.0f, - soundType.getPitch() * 0.8f - ); - } - return ItemStack.EMPTY; - } - - SavedEntity savedEntity = SavedEntity.fromMob(entity); - ItemStack newStack = stack.split(1); - newStack.set(ModComponents.SAVED_ENTITY, savedEntity); - if (entity instanceof Villager villager) { - villager.releasePoi(MemoryModuleType.HOME); - villager.releasePoi(MemoryModuleType.JOB_SITE); - villager.releasePoi(MemoryModuleType.POTENTIAL_JOB_SITE); - villager.releasePoi(MemoryModuleType.MEETING_POINT); - } - entity.remove(Entity.RemovalReason.DISCARDED); - if (player != null) player.getInventory().placeItemBackInInventory(newStack); - return newStack; - } - - public static ItemStack saveMobInItem(Level level, Mob entity, ItemStack stack) { - return saveMobInItem(level, entity, null, stack); - } - - public static boolean canMobBeSaved(Mob entity, @Nullable Player player, @Nullable ItemStack stack) { - if (player != null && player.getAbilities().instabuild) return true; - - if (stack != null && ResinBlockItem.hasMob(stack)) return false; - if (entity.getBbHeight() > 2.0 || entity.getBbWidth() > 1.5) return false; - return !(entity instanceof Monster monster && !monster.hasEffect(MobEffects.WEAKNESS)); - } - - public static boolean canMobBeSaved(Mob entity) { - return canMobBeSaved(entity, null, null); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/LevitationBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/item/LevitationBlockItem.java deleted file mode 100644 index 81cb152789..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/LevitationBlockItem.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.dubhe.anvilcraft.block.item; - -import dev.dubhe.anvilcraft.item.abnormal.ILevitation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; - -public class LevitationBlockItem extends BlockItem implements ILevitation { - public LevitationBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) { - super.inventoryTick(stack, level, entity, slotId, isSelected); - ILevitation.super.inventoryTick(stack, level, entity, slotId, isSelected); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/RadiationBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/item/RadiationBlockItem.java deleted file mode 100644 index d738fd0880..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/RadiationBlockItem.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.dubhe.anvilcraft.block.item; - -import dev.dubhe.anvilcraft.item.abnormal.IRadiation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; - -public class RadiationBlockItem extends BlockItem implements IRadiation { - public RadiationBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) { - super.inventoryTick(stack, level, entity, slotId, isSelected); - IRadiation.super.inventoryTick(stack, level, entity, slotId, isSelected); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/SuperHeavyBlockItem.java b/src/main/java/dev/dubhe/anvilcraft/block/item/SuperHeavyBlockItem.java deleted file mode 100644 index 933f5732fe..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/SuperHeavyBlockItem.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.dubhe.anvilcraft.block.item; - -import dev.dubhe.anvilcraft.item.abnormal.ISuperHeavy; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; - -public class SuperHeavyBlockItem extends BlockItem implements ISuperHeavy { - public SuperHeavyBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) { - super.inventoryTick(stack, level, entity, slotId, isSelected); - ISuperHeavy.super.inventoryTick(stack, level, entity, slotId, isSelected); - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/item/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/item/package-info.java deleted file mode 100644 index 3ecb240124..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/item/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package dev.dubhe.anvilcraft.block.item; - -import com.mojang.math.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BaseLaserBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/laser/BaseLaserBlock.java similarity index 83% rename from src/main/java/dev/dubhe/anvilcraft/block/BaseLaserBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/laser/BaseLaserBlock.java index 1925b3651f..39337d36cd 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/BaseLaserBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/laser/BaseLaserBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.laser; import net.minecraft.world.level.block.BaseEntityBlock; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/LaserReceiverBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/laser/LaserReceiverBlock.java similarity index 95% rename from src/main/java/dev/dubhe/anvilcraft/block/LaserReceiverBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/laser/LaserReceiverBlock.java index 871a5fa4ee..3504bf4d83 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/LaserReceiverBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/laser/LaserReceiverBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.laser; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; @@ -23,18 +23,18 @@ 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.block.state.properties.Property; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.stream.Stream; public class LaserReceiverBlock extends BaseLaserBlock implements IHammerRemovable, IHammerChangeable { - public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final EnumProperty FACING = BlockStateProperties.FACING; public static final BooleanProperty ACTIVE = BooleanProperty.create("active"); public static final VoxelShape UP_SHAPE = Stream.of( @@ -143,7 +143,7 @@ protected RenderShape getRenderShape(BlockState state) { @Override public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return createTickerHelper(type, ModBlockEntities.LASER_RECEIVER.get(), (level1, pos, state1, entity) -> entity.tick(level)); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/laser/PropelPistonBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/laser/PropelPistonBlock.java new file mode 100644 index 0000000000..a08d3f5428 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/laser/PropelPistonBlock.java @@ -0,0 +1,322 @@ +package dev.dubhe.anvilcraft.block.laser; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.mojang.serialization.MapCodec; +import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; +import dev.anvilcraft.lib.v2.piston.injection.IPistonMovingBlockEntityExtension; +import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.block.entity.PropelPistonBlockEntity; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; +import dev.dubhe.anvilcraft.init.item.ModComponents; +import dev.dubhe.anvilcraft.init.item.ModItems; +import dev.dubhe.anvilcraft.item.property.component.StoredEnergy; +import lombok.extern.slf4j.Slf4j; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.ProblemReporter; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +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.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.DirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.piston.MovingPistonBlock; +import net.minecraft.world.level.block.piston.PistonStructureResolver; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.material.PushReaction; +import net.minecraft.world.level.redstone.Orientation; +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.BlockHitResult; +import org.jspecify.annotations.Nullable; + +import java.util.List; +import java.util.Map; + +@Slf4j +public class PropelPistonBlock extends DirectionalBlock implements IMoveableEntityBlock, IHammerRemovable, IHammerChangeable { + public static final BooleanProperty EXHAUSTED = BooleanProperty.create("exhausted"); + public static final BooleanProperty MOVING = BooleanProperty.create("moving"); + + @Override + protected MapCodec codec() { + return simpleCodec(PropelPistonBlock::new); + } + + public PropelPistonBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(EXHAUSTED, true) + .setValue(FACING, Direction.NORTH) + .setValue(MOVING, false)); + } + + @Override + public @Nullable PushReaction getPistonPushReaction(BlockState state) { + if (state.getValue(MOVING)) { + return PushReaction.BLOCK; + } + return PushReaction.NORMAL; + } + + @Override + public @Nullable BlockState getStateForPlacement(BlockPlaceContext context) { + Direction clickedFace = context.getNearestLookingDirection().getOpposite(); + Player player = context.getPlayer(); + if (player != null && player.isShiftKeyDown()) { + return this.defaultBlockState().setValue(FACING, clickedFace.getOpposite()); + } + return this.defaultBlockState().setValue(FACING, clickedFace); + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + level.setBlockAndUpdate(pos, state.cycle(MOVING)); + return InteractionResult.SUCCESS; + } + + @Override + protected InteractionResult useItemOn( + ItemStack stack, + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hitResult + ) { + if (level.getBlockEntity(pos) instanceof PropelPistonBlockEntity propelPistonBlockEntity) { + int storedEnergy = propelPistonBlockEntity.getStoredEnergy(); + if (stack.is(ModItems.CAPACITOR)) { + if (storedEnergy < 76000) { + propelPistonBlockEntity.addEnergy(4000); + stack.consume(1, player); + player.addItem(ModItems.CAPACITOR_EMPTY.asStack()); + return InteractionResult.SUCCESS; + } + } else if (stack.is(ModItems.SUPER_CAPACITOR)) { + if (storedEnergy < 20000) { + propelPistonBlockEntity.updateStoredEnergy(80000); + stack.consume(1, player); + player.addItem(ModItems.SUPER_CAPACITOR_EMPTY.asStack()); + return InteractionResult.SUCCESS; + } + } + } + level.setBlockAndUpdate(pos, state.cycle(MOVING)); + return super.useItemOn(stack, state, level, pos, player, hand, hitResult); + } + + @Override + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { + if (level.hasNeighborSignal(pos)) { + if (!state.getValue(MOVING)) { + level.setBlockAndUpdate(pos, state.setValue(MOVING, true)); + } + } + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(EXHAUSTED, FACING, MOVING); + } + + @Override + protected BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @SuppressWarnings("deprecation") + @Override + protected BlockState mirror(BlockState state, Mirror mirror) { + return state.rotate(mirror.getRotation(state.getValue(FACING))); + } + + @Override + public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return ModBlockEntities.PROPEL_PISTON.create(pos, state); + } + + @Override + public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + if (level.isClientSide()) { + return null; + } + return createTickerHelper(type, + ModBlockEntities.PROPEL_PISTON.get(), + (level1, blockPos, blockState, blockEntity) -> + blockEntity.tick(level1, blockPos, blockState)); + } + + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { + Integer energy = stack.getOrDefault(ModComponents.STORED_ENERGY, StoredEnergy.EMPTY).value(); + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof PropelPistonBlockEntity propelPistonBlockEntity) { + propelPistonBlockEntity.updateStoredEnergy(energy); + } + } + + @Override + public void storeData(Level level, BlockPos pos, ValueOutput output) { + if (!(level.getBlockEntity(pos) instanceof PropelPistonBlockEntity be)) return; + output.putInt("storedEnergyData", be.getStoredEnergy()); + } + + @Override + public void loadData(Level level, BlockPos pos, ValueInput input) { + if (!(level.getBlockEntity(pos) instanceof PropelPistonBlockEntity be)) return; + be.updateStoredEnergy(input.getIntOr("storedEnergyData", 0)); + } + + @Override + protected boolean triggerEvent(BlockState state, Level level, BlockPos pos, int id, int param) { + Direction direction = state.getValue(PropelPistonBlock.FACING); + if (id == 0) { + if (net.neoforged.neoforge.event.EventHooks.onPistonMovePre(level, pos, direction, true)) { + level.setBlockAndUpdate(pos, state.setValue(MOVING, false)); + return false; + } + if (!this.moveBlocks(level, pos, direction)) { + level.setBlockAndUpdate(pos, state.setValue(MOVING, false)); + return false; + } + level.playSound(null, pos, SoundEvents.PISTON_EXTEND, SoundSource.BLOCKS, 0.5F, level.getRandom().nextFloat() * 0.25F + 0.6F); + } + net.neoforged.neoforge.event.EventHooks.onPistonMovePost(level, pos, direction, (id == 0)); + level.scheduleTick(pos.relative(direction), this, 6); + return true; + } + + @Override + public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { + BlockState state = level.getBlockState(blockPos); + level.setBlockAndUpdate(blockPos, state.cycle(FACING)); + return true; + } + + @Override + public @Nullable Property getChangeableProperty(BlockState blockState) { + return FACING; + } + + private boolean moveBlocks(Level level, BlockPos pos, Direction facing) { + PistonStructureResolver pistonstructureresolver = new PistonStructureResolver(level, pos, facing, true); + if (!pistonstructureresolver.resolve()) { + return false; + } else { + Map map = Maps.newHashMap(); + List list = pistonstructureresolver.getToPush(); + List list1 = Lists.newArrayList(); + list.addFirst(pos); + + if (level.getBlockEntity(pos) instanceof PropelPistonBlockEntity propelPistonBlockEntity) { + propelPistonBlockEntity.addEnergy(-(list.size() * 5)); + } + + for (BlockPos blockPos1 : list) { + BlockState blockState = level.getBlockState(blockPos1); + list1.add(blockState); + map.put(blockPos1, blockState); + } + + List list2 = pistonstructureresolver.getToDestroy(); + BlockState[] blockStates = new BlockState[list.size() + list2.size()]; + int i = 0; + + for (int j = list2.size() - 1; j >= 0; j--) { + BlockPos blockPos2 = list2.get(j); + BlockState blockState1 = level.getBlockState(blockPos2); + BlockEntity blockentity = blockState1.hasBlockEntity() ? level.getBlockEntity(blockPos2) : null; + dropResources(blockState1, level, blockPos2, blockentity); + blockState1.onDestroyedByPushReaction(level, blockPos2, facing, level.getFluidState(blockPos2)); + if (!blockState1.is(BlockTags.FIRE)) { + level.addDestroyBlockEffect(blockPos2, blockState1); + } + + blockStates[i++] = blockState1; + } + + for (int k = list.size() - 1; k >= 0; k--) { + BlockPos blockPos3 = list.get(k); + final BlockState blockState5 = level.getBlockState(blockPos3); + blockPos3 = blockPos3.relative(facing); + map.remove(blockPos3); + BlockState blockState8 = Blocks.MOVING_PISTON.defaultBlockState().setValue(FACING, facing); + TagValueOutput output = TagValueOutput.createWithContext(new ProblemReporter.ScopedCollector(log), level.registryAccess()); + if (list1.get(k).getBlock() instanceof IMoveableEntityBlock block) { + block.storeData(level, blockPos3.relative(facing.getOpposite()), output); + } + level.setBlock(blockPos3, blockState8, 68); + BlockEntity blockEntity = MovingPistonBlock.newMovingBlockEntity(blockPos3, blockState8, list1.get(k), facing, true, false); + if (blockEntity instanceof IPistonMovingBlockEntityExtension entity) { + entity.anvillib$setData(output.buildResult()); + } + level.setBlockEntity(blockEntity); + blockStates[i++] = blockState5; + } + + BlockState blockState3 = Blocks.AIR.defaultBlockState(); + + for (BlockPos blockPos4 : map.keySet()) { + level.setBlock(blockPos4, blockState3, 82); + } + + for (Map.Entry entry : map.entrySet()) { + BlockPos blockPos5 = entry.getKey(); + BlockState blockState2 = entry.getValue(); + blockState2.updateIndirectNeighbourShapes(level, blockPos5, 2); + blockState3.updateNeighbourShapes(level, blockPos5, 2); + blockState3.updateIndirectNeighbourShapes(level, blockPos5, 2); + } + + i = 0; + + for (int l = list2.size() - 1; l >= 0; l--) { + BlockState blockState7 = blockStates[i++]; + BlockPos blockPos6 = list2.get(l); + blockState7.updateIndirectNeighbourShapes(level, blockPos6, 2); + level.updateNeighborsAt(blockPos6, blockState7.getBlock()); + } + + for (int i1 = list.size() - 1; i1 >= 0; i1--) { + level.updateNeighborsAt(list.get(i1), blockStates[i++].getBlock()); + } + + return true; + } + } + + @SuppressWarnings("unchecked") + @Nullable + public static BlockEntityTicker
createTickerHelper( + BlockEntityType serverType, BlockEntityType clientType, BlockEntityTicker ticker + ) { + return clientType == serverType ? (BlockEntityTicker) ticker : null; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/RubyLaserBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/laser/RubyLaserBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/RubyLaserBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/laser/RubyLaserBlock.java index 8a8129e5f9..5b3a011989 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/RubyLaserBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/laser/RubyLaserBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.laser; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; @@ -24,13 +24,12 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; 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.pathfinder.PathComputationType; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class RubyLaserBlock extends BaseLaserBlock implements IHammerRemovable, HammerRotateBehavior { public static final VoxelShape UP_MODEL = @@ -45,7 +44,7 @@ public class RubyLaserBlock extends BaseLaserBlock implements IHammerRemovable, Shapes.or(Block.box(3, 4, 4, 13, 12, 12), Block.box(0, 5, 5, 3, 11, 11), Block.box(13, 3, 3, 16, 13, 13)); public static final VoxelShape EAST_MODEL = Shapes.or(Block.box(3, 4, 4, 13, 12, 12), Block.box(13, 5, 5, 16, 11, 11), Block.box(0, 3, 3, 3, 13, 13)); - public static final DirectionProperty FACING = DirectionalBlock.FACING; + public static final EnumProperty FACING = DirectionalBlock.FACING; public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; public static final EnumProperty SWITCH = IPowerComponent.SWITCH; @@ -112,7 +111,7 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return createTickerHelper( type, ModBlockEntities.RUBY_LASER.get(), (level1, pos, state1, entity) -> entity.tick(level1)); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/RubyPrismBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/laser/RubyPrismBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/RubyPrismBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/laser/RubyPrismBlock.java index bd8a1ce660..abe3fca545 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/RubyPrismBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/laser/RubyPrismBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.laser; import com.mojang.serialization.MapCodec; import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; @@ -22,12 +22,12 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class RubyPrismBlock extends BaseLaserBlock implements IHammerRemovable, HammerRotateBehavior, IMoveableEntityBlock { public static final VoxelShape UP_MODEL = @@ -42,7 +42,7 @@ public class RubyPrismBlock extends BaseLaserBlock implements IHammerRemovable, Shapes.or(Block.box(12, 0, 0, 16, 16, 16), Block.box(2, 2, 2, 12, 14, 14), Block.box(0, 4, 4, 2, 12, 12)); public static final VoxelShape EAST_MODEL = Shapes.or(Block.box(0, 0, 0, 4, 16, 16), Block.box(4, 2, 2, 14, 14, 14), Block.box(14, 4, 4, 16, 12, 12)); - public static final DirectionProperty FACING = DirectionalBlock.FACING; + public static final EnumProperty FACING = DirectionalBlock.FACING; /** * 方块状态注册 @@ -103,7 +103,7 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return createTickerHelper( type, ModBlockEntities.RUBY_PRISM.get(), (level1, pos, state1, entity) -> entity.tick(level1)); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/laser/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/laser/package-info.java new file mode 100644 index 0000000000..6320b51815 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/laser/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.laser; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ChuteBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/ChuteBlock.java similarity index 78% rename from src/main/java/dev/dubhe/anvilcraft/block/ChuteBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/ChuteBlock.java index a7db60f0ae..fc1a221a27 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ChuteBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/ChuteBlock.java @@ -1,12 +1,10 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.logistics.chute; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; import dev.dubhe.anvilcraft.block.better.BetterBaseEntityBlock; import dev.dubhe.anvilcraft.block.entity.ChuteBlockEntity; -import dev.dubhe.anvilcraft.block.entity.SimpleChuteBlockEntity; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -21,7 +19,6 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.RandomSource; -import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -29,6 +26,8 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.GameType; import net.minecraft.world.level.Level; +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.Mirror; @@ -41,22 +40,20 @@ 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.Fluids; import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.neoforge.items.IItemHandler; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.stream.Stream; public class ChuteBlock extends BetterBaseEntityBlock implements HammerRotateBehavior, IHammerRemovable { - public static final DirectionProperty FACING = BlockStateProperties.FACING_HOPPER; + public static final EnumProperty FACING = BlockStateProperties.FACING_HOPPER; public static final BooleanProperty ENABLED = BlockStateProperties.ENABLED; public static final VoxelShape AABB = @@ -145,10 +142,10 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { Direction dir = context.getClickedFace().getOpposite(); if (context.getPlayer() != null && context.getPlayer().isShiftKeyDown()) dir = dir.getOpposite(); Direction facing = dir.getAxis() == Direction.Axis.Y ? Direction.DOWN : dir; - BlockState result = getState(context.getLevel(), context.getClickedPos(), facing); + BlockState result = this.getState(context.getLevel(), context.getClickedPos(), facing); Player player = context.getPlayer(); if (result == null && player != null) { - player.displayClientMessage(Component.translatable("message.anvilcraft.chute.cannot_place"), true); + player.sendOverlayMessage(Component.translatable("message.anvilcraft.chute.cannot_place")); } return result; } @@ -169,29 +166,30 @@ protected void createBlockStateDefinition(StateDefinition.Builder BlockEntityTicker getTicker( return createTickerHelper( type, ModBlockEntities.CHUTE.get(), - (level1, blockPos, blockState, blockEntity) -> blockEntity.tick() + (_, _, _, be) -> be.tick() ); } @@ -235,7 +233,6 @@ public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, Co }; } - @SuppressWarnings({"DuplicatedCode", "UnreachableCode"}) @Override public InteractionResult use( BlockState state, @@ -243,8 +240,9 @@ public InteractionResult use( BlockPos pos, Player player, InteractionHand hand, - BlockHitResult hit) { - if (level.isClientSide) { + BlockHitResult hit + ) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } BlockEntity blockEntity = level.getBlockEntity(pos); @@ -279,27 +277,8 @@ public InteractionResult use( } @Override - public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - if (!state.is(newState.getBlock())) { - if (level.getBlockEntity(pos) instanceof ChuteBlockEntity oldEntity) { - IItemHandler oldHandler = oldEntity.getItemHandler(); - if (newState.is(ModBlocks.SIMPLE_CHUTE.get())) { - level.removeBlockEntity(pos); - level.setBlock(pos, newState, 2); - IItemHandler newHandler = null; - if (level.getBlockEntity(pos) instanceof SimpleChuteBlockEntity newEntity) { - newHandler = newEntity.getItemHandler(); - } - ItemHandlerUtil.exportToTarget(oldHandler, 64, stack -> true, newHandler); - } else level.removeBlockEntity(pos); - Vec3 vec3 = oldEntity.getBlockPos().getCenter(); - for (int slot = 0; slot < oldHandler.getSlots(); slot++) { - Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, oldHandler.getStackInSlot(slot)); - } - level.updateNeighbourForOutputSignal(pos, this); - } - } - + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + level.updateNeighbourForOutputSignal(pos, this); } @Override @@ -313,8 +292,8 @@ public boolean hasAnalogOutputSignal(BlockState blockState) { } @Override - public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos blockPos) { - BlockEntity blockEntity = level.getBlockEntity(blockPos); + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + BlockEntity blockEntity = level.getBlockEntity(pos); if (blockEntity instanceof ChuteBlockEntity chuteBlockEntity) { return chuteBlockEntity.getRedstoneSignal(); } @@ -322,7 +301,7 @@ public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos bl } @Nullable - BlockState getState(Level level, BlockPos pos, Direction facing) { + BlockState getState(LevelReader level, BlockPos pos, Direction facing) { boolean success = false; boolean tall = false; BlockState result = this.defaultBlockState() diff --git a/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/MagneticChuteBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/MagneticChuteBlock.java new file mode 100644 index 0000000000..7988cf939f --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/MagneticChuteBlock.java @@ -0,0 +1,241 @@ +package dev.dubhe.anvilcraft.block.logistics.chute; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.block.better.BetterBaseEntityBlock; +import dev.dubhe.anvilcraft.block.entity.MagneticChuteBlockEntity; +import dev.dubhe.anvilcraft.init.ModMenuTypes; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; +import dev.dubhe.anvilcraft.init.block.ModBlocks; +import dev.dubhe.anvilcraft.init.item.ModItems; +import dev.dubhe.anvilcraft.network.MachineEnableFilterPacket; +import dev.dubhe.anvilcraft.network.MachineOutputDirectionPacket; +import dev.dubhe.anvilcraft.network.SlotDisableChangePacket; +import dev.dubhe.anvilcraft.network.SlotFilterChangePacket; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.GameType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +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.EnumProperty; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; +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 net.neoforged.neoforge.network.PacketDistributor; +import org.jspecify.annotations.Nullable; + +public class MagneticChuteBlock extends BetterBaseEntityBlock implements HammerRotateBehavior, IHammerRemovable { + public static final EnumProperty FACING = BlockStateProperties.FACING; + public static final BooleanProperty ENABLED = BlockStateProperties.ENABLED; + + public static final VoxelShape SHAPE_UP = Shapes.or( + Block.box(4, 8, 4, 12, 16, 12), + Block.box(0, 0, 0, 16, 8, 16) + ); + public static final VoxelShape SHAPE_DOWN = Shapes.or( + Block.box(4, 0, 4, 12, 8, 12), + Block.box(0, 8, 0, 16, 16, 16) + ); + public static final VoxelShape SHAPE_W = Shapes.or( + Block.box(0, 4, 4, 8, 12, 12), + Block.box(8, 0, 0, 16, 16, 16) + ); + public static final VoxelShape SHAPE_E = Shapes.or( + Block.box(8, 4, 4, 16, 12, 12), + Block.box(0, 0, 0, 8, 16, 16) + ); + public static final VoxelShape SHAPE_S = Shapes.or( + Block.box(4, 4, 8, 12, 12, 16), + Block.box(0, 0, 0, 16, 16, 8) + ); + public static final VoxelShape SHAPE_N = Shapes.or( + Block.box(4, 4, 0, 12, 12, 8), + Block.box(0, 0, 8, 16, 16, 16) + ); + + /** + * 溜槽方块 + * + * @param properties 方块属性 + */ + public MagneticChuteBlock(Properties properties) { + super(properties); + this.registerDefaultState( + this.stateDefinition.any().setValue(FACING, Direction.DOWN).setValue(ENABLED, true)); + } + + @Override + protected MapCodec codec() { + return simpleCodec(MagneticChuteBlock::new); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext collisionContext) { + return switch (state.getValue(FACING)) { + case NORTH -> SHAPE_N; + case SOUTH -> SHAPE_S; + case WEST -> SHAPE_W; + case EAST -> SHAPE_E; + case DOWN -> SHAPE_DOWN; + case UP -> SHAPE_UP; + }; + } + + @Override + protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) { + return false; + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new MagneticChuteBlockEntity(ModBlockEntities.MAGNETIC_CHUTE.get(), pos, state); + } + + @Override + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + level.updateNeighbourForOutputSignal(pos, this); + } + + @Override + public boolean hasAnalogOutputSignal(BlockState blockState) { + return true; + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof MagneticChuteBlockEntity magneticChuteBlockEntity) { + return magneticChuteBlockEntity.getRedstoneSignal(); + } + return 0; + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Player player = context.getPlayer(); + Direction facing = context.getNearestLookingDirection(); + if (player != null && player.isShiftKeyDown()) facing = facing.getOpposite(); + BlockState neighborState = level.getBlockState(pos.relative(facing)); + boolean cannotPlace = facing == Direction.UP + && (neighborState.is(ModBlocks.SIMPLE_CHUTE) || neighborState.is(ModBlocks.CHUTE)) + && neighborState.getValue(FACING_HOPPER) == Direction.DOWN; + if (cannotPlace) { + if (player != null) player.sendOverlayMessage(Component.translatable("message.anvilcraft.chute.cannot_place")); + return null; + } + return this.defaultBlockState() + .setValue(FACING, facing) + .setValue(ENABLED, !context.getLevel().hasNeighborSignal(context.getClickedPos())); + } + + @Override + public BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirror) { + return this.rotate(state, mirror.getRotation(state.getValue(FACING))); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, ENABLED); + } + + @Override + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { + this.checkPoweredState(level, pos, state); + } + + private void checkPoweredState(Level level, BlockPos pos, BlockState state) { + boolean flag = !level.hasNeighborSignal(pos); + if (flag != state.getValue(ENABLED)) { + level.setBlock(pos, state.setValue(ENABLED, flag), 2); + } + } + + @Override + public @Nullable BlockEntityTicker getTicker( + Level level, BlockState state, BlockEntityType blockEntityType) { + if (level.isClientSide()) { + return null; + } + return createTickerHelper( + blockEntityType, + ModBlockEntities.MAGNETIC_CHUTE.get(), + ((_, _, _, be) -> be.tick())); + } + + @Override + public InteractionResult use( + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hit + ) { + if (level.isClientSide()) { + return InteractionResult.SUCCESS; + } + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof MagneticChuteBlockEntity entity) { + if (player.getItemInHand(hand).is(ModItems.DISK.get())) { + return entity.useDisk(level, player, hand, player.getItemInHand(hand), hit); + } + if (player instanceof ServerPlayer serverPlayer) { + if (serverPlayer.gameMode.getGameModeForPlayer() == GameType.SPECTATOR) return InteractionResult.PASS; + ModMenuTypes.open(serverPlayer, entity, pos); + PacketDistributor.sendToPlayer(serverPlayer, new MachineOutputDirectionPacket(entity.getDirection())); + PacketDistributor.sendToPlayer(serverPlayer, new MachineEnableFilterPacket(entity.isFilterEnabled())); + for (int i = 0; i < entity.getFilteredItems().size(); i++) { + PacketDistributor.sendToPlayer( + serverPlayer, + new SlotDisableChangePacket( + i, entity.getItemHandler().getDisabled().get(i))); + PacketDistributor.sendToPlayer(serverPlayer, new SlotFilterChangePacket(i, entity.getFilter(i))); + } + } + } + return InteractionResult.SUCCESS; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/SimpleChuteBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/SimpleChuteBlock.java new file mode 100644 index 0000000000..d1107d4127 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/SimpleChuteBlock.java @@ -0,0 +1,284 @@ +package dev.dubhe.anvilcraft.block.logistics.chute; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; +import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.block.entity.SimpleChuteBlockEntity; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; +import dev.dubhe.anvilcraft.init.block.ModBlocks; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +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.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +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.EnumProperty; +import net.minecraft.world.level.block.state.properties.Property; +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.phys.shapes.BooleanOp; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.jspecify.annotations.Nullable; + +public class SimpleChuteBlock + extends BaseEntityBlock + implements SimpleWaterloggedBlock, IHammerChangeable, IHammerRemovable { + public static final EnumProperty FACING = BlockStateProperties.FACING_HOPPER; + public static final BooleanProperty ENABLED = BlockStateProperties.ENABLED; + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + public static final BooleanProperty TALL = BooleanProperty.create("tall"); + + public static final VoxelShape AABB = Block.box(2, 0, 2, 14, 12, 14); + public static final VoxelShape AABB_TALL = Block.box(2, 0, 2, 14, 16, 14); + public static final VoxelShape AABB_N = Block.box(4, 4, 0, 12, 12, 12); + public static final VoxelShape AABB_TALL_N = + Shapes.join(Block.box(4, 4, 0, 12, 12, 12), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); + public static final VoxelShape AABB_E = Block.box(4, 4, 4, 16, 12, 12); + public static final VoxelShape AABB_TALL_E = + Shapes.join(Block.box(4, 4, 4, 16, 12, 12), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); + public static final VoxelShape AABB_S = Block.box(4, 4, 4, 12, 12, 16); + public static final VoxelShape AABB_TALL_S = + Shapes.join(Block.box(4, 4, 4, 12, 12, 16), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); + public static final VoxelShape AABB_W = Block.box(0, 4, 4, 12, 12, 12); + public static final VoxelShape AABB_TALL_W = + Shapes.join(Block.box(0, 4, 4, 12, 12, 12), Block.box(2, 8, 2, 14, 16, 14), BooleanOp.OR); + + public SimpleChuteBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition + .any() + .setValue(FACING, Direction.DOWN) + .setValue(WATERLOGGED, false) + .setValue(ENABLED, true) + .setValue(TALL, false)); + } + + @Override + protected MapCodec codec() { + return simpleCodec(SimpleChuteBlock::new); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new SimpleChuteBlockEntity(ModBlockEntities.SIMPLE_CHUTE.get(), pos, state); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, WATERLOGGED, ENABLED, TALL); + } + + @Override + protected BlockState updateShape( + BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, + Direction directionToNeighbour, + BlockPos neighbourPos, + BlockState neighbourState, + RandomSource random + ) { + if (state.getValue(WATERLOGGED)) ticks.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); + if (level.isClientSide()) return state; + BlockState newState = this.getState(level, pos, state.getValue(FACING)); + if (newState != null && newState != state) state = newState; + + state = this.checkPoweredState(level, pos, state); + return state; + } + + private BlockState checkPoweredState(LevelReader level, BlockPos pos, BlockState state) { + boolean flag = !level.hasNeighborSignal(pos); + if (flag == state.getValue(ENABLED)) return state; + return state.setValue(ENABLED, flag); + } + + @Override + public ItemStack getCloneItemStack( + LevelReader level, + BlockPos pos, + BlockState state, + boolean includeData, + Player player + ) { + return new ItemStack(ModBlocks.CHUTE); + } + + @Override + public void tick( + BlockState state, + ServerLevel level, + BlockPos pos, + RandomSource random + ) { + if (!state.getValue(ENABLED) && !level.hasNeighborSignal(pos)) { + level.setBlock(pos, state.cycle(ENABLED), 2); + } + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected void affectNeighborsAfterRemoval( + BlockState state, + ServerLevel level, + BlockPos pos, + boolean movedByPiston + ) { + level.updateNeighbourForOutputSignal(pos, this); + } + + @Nullable + @Override + public BlockEntityTicker getTicker( + Level level, BlockState state, BlockEntityType blockEntityType) { + if (level.isClientSide()) return null; + return createTickerHelper( + blockEntityType, + ModBlockEntities.SIMPLE_CHUTE.get(), + ((_, _, _, be) -> be.tick()) + ); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + Direction facing = state.getValue(FACING); + if (!state.getValue(TALL)) { + return switch (facing) { + case NORTH -> AABB_N; + case EAST -> AABB_E; + case SOUTH -> AABB_S; + case WEST -> AABB_W; + default -> AABB; + }; + } else { + return switch (facing) { + case NORTH -> AABB_TALL_N; + case EAST -> AABB_TALL_E; + case SOUTH -> AABB_TALL_S; + case WEST -> AABB_TALL_W; + default -> AABB_TALL; + }; + } + } + + @Override + protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) { + return false; + } + + @Override + public boolean hasAnalogOutputSignal(BlockState blockState) { + return true; + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof SimpleChuteBlockEntity chuteBlockEntity) { + return chuteBlockEntity.getRedstoneSignal(); + } + return 0; + } + + @Override + public FluidState getFluidState(BlockState state) { + return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(state); + } + + @Override + public boolean change(Player player, BlockPos pos, Level level, ItemStack anvilHammer) { + HammerRotateBehavior.DEFAULT.change(player, pos, level, anvilHammer); + BlockState state = level.getBlockState(pos); + BlockState facingState = level.getBlockState(pos.relative(state.getValue(FACING))); + if (facingState.is(ModBlocks.CHUTE.get()) || facingState.is(ModBlocks.SIMPLE_CHUTE.get())) { + if (facingState.getValue(FACING).getOpposite() == state.getValue(FACING)) { + return this.change(player, pos, level, anvilHammer); + } + } + return true; + } + + @Override + public @Nullable Property getChangeableProperty(BlockState blockState) { + return FACING; + } + + @Override + public BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @SuppressWarnings("deprecation") + @Override + public BlockState mirror(BlockState state, Mirror mirror) { + return state.rotate(mirror.getRotation(state.getValue(FACING))); + } + + @Nullable + BlockState getState(LevelReader level, BlockPos pos, Direction facing) { + boolean success = false; + boolean tall = false; + BlockState result = level.getBlockState(pos); + // 遍历六个方向 获取指向自己的溜槽 + for (Direction dir : Direction.values()) { + BlockPos neighborPos = pos.relative(dir); + BlockState neighborState = level.getBlockState(neighborPos); + if (ChuteBlock.isChuteBlock(neighborState)) { + if (ChuteBlock.getFacing(neighborState) == dir.getOpposite()) { + success = true; + if (dir == Direction.UP) { + tall = !neighborState.is(ModBlocks.MAGNETIC_CHUTE.get()); + } + } + + } + } + if (!success) { + result = ModBlocks.CHUTE.getDefaultState() + .setValue(FACING, facing) + .setValue(ENABLED, !level.hasNeighborSignal(pos)); + } else { + result = result.setValue(TALL, tall); + } + return result; + } + + // 防止流体流动时破坏溜槽 + @Override + public boolean canBeReplaced(BlockState state, net.minecraft.world.level.material.Fluid fluid) { + return false; + } + + // 防止玩家使用桶放置流体时直接替换掉溜槽 + @Override + public boolean canBeReplaced(BlockState state, net.minecraft.world.item.context.BlockPlaceContext context) { + return false; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/package-info.java new file mode 100644 index 0000000000..b6504768f4 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/chute/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.logistics.chute; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/ActivatorSlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/ActivatorSlidingRailBlock.java similarity index 89% rename from src/main/java/dev/dubhe/anvilcraft/block/sliding/ActivatorSlidingRailBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/ActivatorSlidingRailBlock.java index 20bbfb0e37..ee167cb97c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/ActivatorSlidingRailBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/ActivatorSlidingRailBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block.sliding; +package dev.dubhe.anvilcraft.block.logistics.sliding; import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; @@ -9,6 +9,7 @@ import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; +import net.minecraft.util.TriState; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; @@ -28,12 +29,12 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.neoforge.common.util.TriState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.Optional; @@ -158,7 +159,7 @@ protected void updatePower(Level level, BlockPos pos, BlockState state, BlockPos BlockState state1 = level.getBlockState(pos1); if (!(state1.getBlock() instanceof ActivatorSlidingRailBlock other)) continue; if (state1.getOptionalValue(FACING).map(Direction::getAxis).filter(axis::equals).isEmpty()) continue; - level.neighborChanged(pos1, other, pos); + level.neighborChanged(pos1, other, Orientation.random(level.getRandom())); } } } @@ -178,27 +179,26 @@ public void onNeighborChange(BlockState state, LevelReader level, BlockPos pos, if (MOVING_PISTON_MAP.containsKey(pos)) { MOVING_PISTON_MAP.get(pos).fromPos = neighbor; } else MOVING_PISTON_MAP.put(pos, ppi); - } - @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { - this.updatePower(level, pos, state, fromPos); - Optional beOp = level.getBlockEntity(pos, ModBlockEntities.ACTIVATOR_SLIDING_RAIL.get()); - if (!fromPos.equals(pos.above())) return; - if ( - state.getValue(POWERED) - && !beOp.map(ActivatorSlidingRailBlockEntity::shouldPower).orElse(false) - && !level.getBlockTicks().hasScheduledTick(pos, this) - && !MOVING_PISTON_MAP.containsKey(fromPos) - && block.equals(Blocks.MOVING_PISTON) - && !level.getBlockEntity(pos.above(), BlockEntityType.PISTON).map(PistonMovingBlockEntity::isSourcePiston).orElse(true) - ) { - beOp.ifPresent(ActivatorSlidingRailBlockEntity::startPulse); - level.scheduleTick(pos, this, 3); - this.updateAbove(level, pos); - return; + if (level instanceof Level world) { + this.updatePower(world, pos, state, neighbor); + Optional beOp = world.getBlockEntity(pos, ModBlockEntities.ACTIVATOR_SLIDING_RAIL.get()); + if (!neighbor.equals(pos.above())) return; + if ( + state.getValue(POWERED) + && !beOp.map(ActivatorSlidingRailBlockEntity::shouldPower).orElse(false) + && !world.getBlockTicks().hasScheduledTick(pos, this) + && !MOVING_PISTON_MAP.containsKey(neighbor) + && level.getBlockState(pos).getBlock().equals(Blocks.MOVING_PISTON) + && !level.getBlockEntity(pos.above(), BlockEntityType.PISTON).map(PistonMovingBlockEntity::isSourcePiston).orElse(true) + ) { + beOp.ifPresent(ActivatorSlidingRailBlockEntity::startPulse); + world.scheduleTick(pos, this, 3); + this.updateAbove(world, pos); + return; + } } - super.neighborChanged(state, level, pos, block, fromPos, isMoving); + super.onNeighborChange(state, level, pos, neighbor); } @Override @@ -295,12 +295,12 @@ private void updateAbove(Level level, BlockPos pos) { BlockPos abovePos = pos.above(); BlockState aboveState = level.getBlockState(abovePos); aboveState.onNeighborChange(level, abovePos, pos); - level.neighborChanged(aboveState, abovePos, this, pos, false); + level.neighborChanged(aboveState, abovePos, this, Orientation.random(level.getRandom()), false); if (!aboveState.isRedstoneConductor(level, abovePos)) return; for (Direction dir : UPDATE_SIDES) { BlockPos neighborPos = abovePos.relative(dir); BlockState neighborState = level.getBlockState(neighborPos); - level.neighborChanged(neighborState, neighborPos, aboveState.getBlock(), abovePos, false); + level.neighborChanged(neighborState, neighborPos, aboveState.getBlock(), Orientation.random(level.getRandom()), false); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/BaseSlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/BaseSlidingRailBlock.java similarity index 78% rename from src/main/java/dev/dubhe/anvilcraft/block/sliding/BaseSlidingRailBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/BaseSlidingRailBlock.java index af143bfbed..022f9014d9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/BaseSlidingRailBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/BaseSlidingRailBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block.sliding; +package dev.dubhe.anvilcraft.block.logistics.sliding; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -8,6 +8,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.LivingEntity; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.level.BlockGetter; @@ -21,18 +22,18 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; +import org.jspecify.annotations.Nullable; import java.util.Objects; public abstract class BaseSlidingRailBlock extends Block implements ISlidingRail, IHammerRemovable { public BaseSlidingRailBlock(Properties properties) { - super(properties.friction(1.0204082f)); + super(properties.friction(1.0204082F)); } protected BaseSlidingRailBlock(Properties properties, boolean shouldSetFriction) { - super(shouldSetFriction ? properties.friction(1.0204082f) : properties); + super(shouldSetFriction ? properties.friction(1.0204082F) : properties); } @Override @@ -55,15 +56,23 @@ public void onNeighborChange(BlockState state, LevelReader level, BlockPos pos, ISlidingRail.whenOnNeighborChange(level, pos, neighbor); } - @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { - if (level.isClientSide) return; - ISlidingRail.whenNeighborChanged(level, self(), pos, fromPos); - } + // @Override + // protected void neighborChanged( + // BlockState state, + // Level level, + // BlockPos pos, + // Block block, + // @Nullable Orientation orientation, + // boolean movedByPiston + // ) { + // super.neighborChanged(state, level, pos, block, orientation, movedByPiston); + // if (level.isClientSide()) return; + // ISlidingRail.whenNeighborChanged(level, this.self(), pos, fromPos); + // } @Override protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { - ISlidingRail.whenTick(level, self(), pos); + ISlidingRail.whenTick(level, this.self(), pos); } @Override @@ -92,7 +101,7 @@ public boolean isStickyBlock(BlockState state) { return this.canStickTo(pos, axis, otherPos, otherAxis); } - private boolean canStickTo(BlockPos pos, @Nullable Direction.Axis axis, BlockPos otherPos, @Nullable Direction.Axis otherAxis) { + private boolean canStickTo(BlockPos pos, Direction.@Nullable Axis axis, BlockPos otherPos, Direction.@Nullable Axis otherAxis) { if (axis == Direction.Axis.Y || otherAxis == Direction.Axis.Y) return true; boolean axisIsNotNull = axis != null; if (Objects.equals(otherAxis, axis) && axisIsNotNull) { @@ -108,8 +117,15 @@ private boolean canStickTo(BlockPos pos, @Nullable Direction.Axis axis, BlockPos } @Override - public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - if (level.isClientSide) return; + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + if (level.isClientSide()) return; if (entity instanceof ItemEntity) { AABB railBox = new AABB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1); if (railBox.intersects(entity.getBoundingBox())) { @@ -119,7 +135,7 @@ public void entityInside(BlockState state, Level level, BlockPos pos, Entity ent } } if (entity instanceof LivingEntity) { - if (this instanceof PoweredSlidingRailBlock poweredRail) { + if (this instanceof PoweredSlidingRailBlock) { BlockState railState = level.getBlockState(pos); if (railState.getValue(PoweredSlidingRailBlock.POWERED)) { Direction facing = railState.getValue(PoweredSlidingRailBlock.FACING); @@ -129,13 +145,13 @@ public void entityInside(BlockState state, Level level, BlockPos pos, Entity ent Vec3 entityPos = entity.position(); Vector3f acceleration = blockPos.toVector3f() .sub(entityPos.toVector3f()) - .mul(0.15f) - .div(0.98f) + .mul(0.15F) + .div(0.98F) .mul(new Vector3f(1, 0, 1)); - entity.setDeltaMovement(entity.getDeltaMovement().multiply(0.8f, 0.8f, 0.8f).add(new Vec3(acceleration))); + entity.setDeltaMovement(entity.getDeltaMovement().multiply(0.8F, 0.8F, 0.8F).add(new Vec3(acceleration))); } } } - super.entityInside(state, level, pos, entity); + super.entityInside(state, level, pos, entity, effectApplier, isPrecise); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/DetectorSlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/DetectorSlidingRailBlock.java similarity index 96% rename from src/main/java/dev/dubhe/anvilcraft/block/sliding/DetectorSlidingRailBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/DetectorSlidingRailBlock.java index d2ed3ac5f6..f44e26d8bb 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/DetectorSlidingRailBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/DetectorSlidingRailBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block.sliding; +package dev.dubhe.anvilcraft.block.logistics.sliding; import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; @@ -7,7 +7,6 @@ import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.item.ItemEntity; @@ -26,12 +25,13 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.storage.ValueInput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Optional; import java.util.stream.Stream; @@ -121,7 +121,7 @@ protected boolean hasAnalogOutputSignal(BlockState state) { } @Override - protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { return level.getBlockEntity(pos, ModBlockEntities.DETECTOR_SLIDING_RAIL.get()) .map(DetectorSlidingRailBlockEntity::getPower) .orElse(0); @@ -160,7 +160,7 @@ public void onItemEntitySlidingAbove(Level level, BlockPos pos, BlockState state } @Override - public void setData(Level level, BlockPos pos, CompoundTag nbt) { + public void loadData(Level level, BlockPos pos, ValueInput input) { BlockState state = level.getBlockState(pos); if (state.getBlock() != this) return; level.setBlock(pos, state.setValue(POWERED, false), Block.UPDATE_ALL); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/ISlidingRail.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/ISlidingRail.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/block/sliding/ISlidingRail.java rename to src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/ISlidingRail.java index cbb304d72b..38b64de2bf 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/ISlidingRail.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/ISlidingRail.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block.sliding; +package dev.dubhe.anvilcraft.block.logistics.sliding; import dev.dubhe.anvilcraft.api.injection.block.IBlockExtension; import dev.dubhe.anvilcraft.api.sliding.SlidingBlockStructureResolver; @@ -88,7 +88,7 @@ static void whenOnNeighborChange(LevelReader level, BlockPos pos, BlockPos neigh } static void whenNeighborChanged(Level level, Block block, BlockPos pos, BlockPos fromPos) { - if (level.isClientSide) return; + if (level.isClientSide()) return; BlockState blockState = level.getBlockState(fromPos); if (!MOVING_PISTON_MAP.containsKey(pos)) return; if (blockState.is(Blocks.MOVING_PISTON)) return; @@ -186,10 +186,10 @@ static void absorbEntity(BlockPos pos, Entity entity) { Vec3 entityPos = entity.position(); Vector3f acceleration = blockPos.toVector3f() .sub(entityPos.toVector3f()) - .mul(0.45f) - .div(0.98f) + .mul(0.45F) + .div(0.98F) .mul(new Vector3f(1, 0, 1)); - entity.setDeltaMovement(entity.getDeltaMovement().multiply(0.5f, 0.5f, 0.5f).add(new Vec3(acceleration))); + entity.setDeltaMovement(entity.getDeltaMovement().multiply(0.5F, 0.5F, 0.5F).add(new Vec3(acceleration))); } class PistonPushInfo { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/PoweredSlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/PoweredSlidingRailBlock.java similarity index 90% rename from src/main/java/dev/dubhe/anvilcraft/block/sliding/PoweredSlidingRailBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/PoweredSlidingRailBlock.java index b350819b1b..3c24db5d2b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/PoweredSlidingRailBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/PoweredSlidingRailBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block.sliding; +package dev.dubhe.anvilcraft.block.logistics.sliding; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; import dev.dubhe.anvilcraft.entity.MagnetizedNodeEntity; @@ -24,14 +24,15 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; +import org.jspecify.annotations.Nullable; import java.util.List; import java.util.stream.Stream; @@ -148,7 +149,7 @@ public void onNeighborChange(BlockState state, LevelReader level, BlockPos pos, private static final int[] UPDATE_POS = new int[] {-1, 1}; - protected boolean updatePower(Level level, BlockPos pos, BlockState state, BlockPos fromPos) { + protected boolean updatePower(Level level, BlockPos pos, BlockState state, @Nullable BlockPos fromPos) { boolean powered = state.getValue(POWERED); boolean shouldPower = this.isPowered(level, pos); if (powered != shouldPower) { @@ -163,7 +164,7 @@ protected boolean updatePower(Level level, BlockPos pos, BlockState state, Block BlockState state1 = level.getBlockState(pos1); if (!(state1.getBlock() instanceof PoweredSlidingRailBlock other)) continue; if (state1.getOptionalValue(FACING).map(Direction::getAxis).filter(axis::equals).isEmpty()) continue; - level.neighborChanged(pos1, other, pos); + // level.neighborChanged(pos1, other, null); } } return powered; @@ -175,22 +176,29 @@ public boolean getWeakChanges(BlockState state, LevelReader level, BlockPos pos) } @Override - public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { - boolean powered = this.updatePower(level, pos, state, fromPos); - pushAbove: - if (powered) { - fromPos = pos.above(); - if (level.isEmptyBlock(fromPos)) break pushAbove; - PistonPushInfo ppi = new PistonPushInfo(fromPos, state.getValue(FACING)); + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { + super.neighborChanged(state, level, pos, block, orientation, movedByPiston); + boolean powered = this.updatePower(level, pos, state, null); + BlockPos above = pos.above(); + if (powered && !level.isEmptyBlock(above)) { + PistonPushInfo ppi = new PistonPushInfo(above, state.getValue(FACING)); ppi.extending = true; if (MOVING_PISTON_MAP.containsKey(pos)) { - MOVING_PISTON_MAP.get(pos).fromPos = fromPos; + MOVING_PISTON_MAP.get(pos).fromPos = above; } else MOVING_PISTON_MAP.put(pos, ppi); } - if (level.isClientSide) return; + if (level.isClientSide()) return; if (!powered) return; - BlockState blockState = level.getBlockState(MOVING_PISTON_MAP.get(pos) instanceof PistonPushInfo info ? info.fromPos : fromPos); if (!MOVING_PISTON_MAP.containsKey(pos)) return; + BlockPos checkPos = MOVING_PISTON_MAP.get(pos) instanceof PistonPushInfo info ? info.fromPos : above; + BlockState blockState = level.getBlockState(checkPos); if (blockState.is(Blocks.MOVING_PISTON) || blockState.isAir()) return; level.scheduleTick(pos, this, 2); } @@ -224,10 +232,10 @@ public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { Vec3 entityPos = entity.position(); Vector3f acceleration = blockPos.toVector3f() .sub(entityPos.toVector3f()) - .mul(0.15f) - .div(0.98f) + .mul(0.15F) + .div(0.98F) .mul(new Vector3f(1, 0, 1)); - entity.setDeltaMovement(entity.getDeltaMovement().multiply(0.8f, 0.8f, 0.8f).add(new Vec3(acceleration))); + entity.setDeltaMovement(entity.getDeltaMovement().multiply(0.8F, 0.8F, 0.8F).add(new Vec3(acceleration))); } } else { if (!isSneakPlayer) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/SlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/SlidingRailBlock.java new file mode 100644 index 0000000000..c1cf08fa5c --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/SlidingRailBlock.java @@ -0,0 +1,183 @@ +package dev.dubhe.anvilcraft.block.logistics.sliding; + +import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; +import dev.dubhe.anvilcraft.entity.SlidingBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.util.RandomSource; +import net.minecraft.util.TriState; +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.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.Rotation; +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.EnumProperty; +import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.phys.shapes.BooleanOp; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.jspecify.annotations.Nullable; + +import java.util.stream.Stream; + +public class SlidingRailBlock extends BaseSlidingRailBlock implements IHammerChangeable { + public static final VoxelShape AABB_X = Stream.of( + Block.box(0, 6, 11, 16, 12, 14), + Block.box(0, 0, 0, 16, 6, 16), + Block.box(0, 12, 0, 16, 16, 5), + Block.box(0, 12, 11, 16, 16, 16), + Block.box(0, 6, 2, 16, 12, 5) + ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get(); + public static final VoxelShape AABB_Z = Stream.of( + Block.box(2, 6, 0, 5, 12, 16), + Block.box(0, 0, 0, 16, 6, 16), + Block.box(11, 12, 0, 16, 16, 16), + Block.box(0, 12, 0, 5, 16, 16), + Block.box(11, 6, 0, 14, 12, 16) + ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get(); + public static final VoxelShape AABB_Y = Stream.of( + Block.box(0, 0, 0, 16, 6, 16), + Block.box(11, 6, 11, 16, 16, 16), + Block.box(0, 6, 11, 5, 16, 16), + Block.box(0, 6, 0, 5, 16, 5), + Block.box(11, 6, 0, 16, 16, 5) + ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get(); + public static final EnumProperty AXIS = BlockStateProperties.AXIS; + + public SlidingRailBlock(Properties properties) { + super(properties); + registerDefaultState(getStateDefinition().any().setValue(AXIS, Axis.X)); + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Axis axis = context.getHorizontalDirection().getOpposite().getAxis(); + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + if ( + (this.isOtherRailInAxis(level, pos, Axis.X, -1) == TriState.TRUE + || this.isOtherRailInAxis(level, pos, Axis.X, 1) == TriState.TRUE) + && (this.isOtherRailInAxis(level, pos, Axis.Z, -1) == TriState.TRUE + || this.isOtherRailInAxis(level, pos, Axis.Z, 1) == TriState.TRUE) + ) { + axis = Axis.Y; + } + return this.defaultBlockState().setValue(AXIS, axis); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(AXIS); + } + + @Override + protected boolean useShapeForLightOcclusion(BlockState state) { + return true; + } + + @Override + public VoxelShape getShape( + BlockState blockState, + BlockGetter blockGetter, + BlockPos blockPos, + CollisionContext collisionContext + ) { + return switch (blockState.getValue(AXIS)) { + case X -> AABB_X; + case Y -> AABB_Y; + case Z -> AABB_Z; + }; + } + + @Override + protected BlockState updateShape( + BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, + Direction directionToNeighbour, + BlockPos neighbourPos, + BlockState neighbourState, + RandomSource random + ) { + BlockState newState = state; + if (this.isOtherRailInAxis(level, pos, Axis.X, -1) == TriState.TRUE + || this.isOtherRailInAxis(level, pos, Axis.X, 1) == TriState.TRUE + ) { + if (state.getValue(AXIS) != Axis.Y + && (this.isOtherRailInAxis(level, pos, Axis.Z, -1) == TriState.TRUE + || this.isOtherRailInAxis(level, pos, Axis.Z, 1) == TriState.TRUE) + ) { + state = state.setValue(AXIS, Axis.Y); + } + if (state.getValue(AXIS) == Axis.Y + && this.isOtherRailInAxis(level, pos, Axis.Z, -1) != TriState.TRUE + && this.isOtherRailInAxis(level, pos, Axis.Z, 1) != TriState.TRUE + ) { + state = state.setValue(AXIS, Axis.X); + } + } else if ( + this.isOtherRailInAxis(level, pos, Axis.Z, -1) == TriState.TRUE + || this.isOtherRailInAxis(level, pos, Axis.Z, 1) == TriState.TRUE + ) { + if (state.getValue(AXIS) == Axis.Y + && this.isOtherRailInAxis(level, pos, Axis.X, -1) != TriState.TRUE + && this.isOtherRailInAxis(level, pos, Axis.X, 1) != TriState.TRUE + ) { + state = state.setValue(AXIS, Axis.Z); + } + } + super.onNeighborChange(state, level, pos, neighbourPos); + return newState; + } + + private TriState isOtherRailInAxis(LevelReader level, BlockPos pos, Axis axis, int relative) { + BlockState other = level.getBlockState(pos.relative(axis, relative)); + Axis otherAxis; + if (other.getBlock() instanceof SlidingRailBlock) { + otherAxis = other.getValue(AXIS); + } else if (other.getBlock() instanceof PoweredSlidingRailBlock) { + otherAxis = other.getValue(PoweredSlidingRailBlock.FACING).getAxis(); + } else if (other.getBlock() instanceof ActivatorSlidingRailBlock) { + otherAxis = other.getValue(ActivatorSlidingRailBlock.FACING).getAxis(); + } else if (other.getBlock() instanceof DetectorSlidingRailBlock) { + otherAxis = other.getValue(DetectorSlidingRailBlock.FACING).getAxis(); + } else { + return TriState.DEFAULT; + } + return axis == otherAxis || otherAxis == Axis.Y ? TriState.TRUE : TriState.FALSE; + } + + @Override + public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { + BlockState bs = level.getBlockState(blockPos); + level.setBlockAndUpdate(blockPos, bs.cycle(AXIS)); + return true; + } + + @Override + public @Nullable Property getChangeableProperty(BlockState blockState) { + return AXIS; + } + + @Override + public void onSlidingAbove(Level level, BlockPos pos, BlockState state, SlidingBlockEntity entity) { + } + + @Override + protected BlockState rotate(BlockState state, Rotation rotation) { + return RotatedPillarBlock.rotatePillar(state, rotation); + } + +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/SlidingRailStopBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/SlidingRailStopBlock.java similarity index 87% rename from src/main/java/dev/dubhe/anvilcraft/block/sliding/SlidingRailStopBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/SlidingRailStopBlock.java index 29a0a4db4b..eb1d8c8f02 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/SlidingRailStopBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/SlidingRailStopBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block.sliding; +package dev.dubhe.anvilcraft.block.logistics.sliding; import dev.anvilcraft.lib.v2.util.MathUtil; import dev.anvilcraft.lib.v2.util.Util; @@ -12,6 +12,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntity; @@ -106,19 +107,20 @@ public void onSlidingAbove(Level level, BlockPos pos, BlockState state, SlidingB } @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block neighborBlock, BlockPos fromPos, boolean isMoving) { - super.neighborChanged(state, level, pos, neighborBlock, fromPos, isMoving); - if (level.isEmptyBlock(pos.above())) return; - BlockState topBlock = level.getBlockState(pos.above()); - if (!PistonBaseBlock.isPushable(topBlock, level, pos, null, true, null)) return; - Direction moveTo = MathUtil.getDirection(fromPos, pos); + public void onNeighborChange(BlockState state, LevelReader level, BlockPos pos, BlockPos neighbor) { + super.onNeighborChange(state, level, pos, neighbor); + if (!(level instanceof Level actualLevel)) return; + if (actualLevel.isEmptyBlock(pos.above())) return; + BlockState topBlock = actualLevel.getBlockState(pos.above()); + if (!PistonBaseBlock.isPushable(topBlock, actualLevel, pos, null, true, null)) return; + Direction moveTo = MathUtil.getDirection(neighbor, pos); if (moveTo.getAxis() == Direction.Axis.Y) return; - if (this.canMoveBlockTo(level, pos, topBlock, moveTo)) { - SlidingRailStopBlock.moveBlocksAbove(level, pos, moveTo); - } else if (this.canMoveBlockTo(level, pos, topBlock, moveTo.getCounterClockWise())) { - SlidingRailStopBlock.moveBlocksAbove(level, pos, moveTo.getCounterClockWise()); - } else if (this.canMoveBlockTo(level, pos, topBlock, moveTo.getClockWise())) { - SlidingRailStopBlock.moveBlocksAbove(level, pos, moveTo.getClockWise()); + if (this.canMoveBlockTo(actualLevel, pos, topBlock, moveTo)) { + SlidingRailStopBlock.moveBlocksAbove(actualLevel, pos, moveTo); + } else if (this.canMoveBlockTo(actualLevel, pos, topBlock, moveTo.getCounterClockWise())) { + SlidingRailStopBlock.moveBlocksAbove(actualLevel, pos, moveTo.getCounterClockWise()); + } else if (this.canMoveBlockTo(actualLevel, pos, topBlock, moveTo.getClockWise())) { + SlidingRailStopBlock.moveBlocksAbove(actualLevel, pos, moveTo.getClockWise()); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/package-info.java new file mode 100644 index 0000000000..bcb0aaef07 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/logistics/sliding/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.logistics.sliding; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/multipart/AbstractMultiPartBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/multipart/AbstractMultiPartBlock.java index 664af08dde..65dcf5228d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/multipart/AbstractMultiPartBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/multipart/AbstractMultiPartBlock.java @@ -3,17 +3,19 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; +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.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.LevelEvent; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Property; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public abstract class AbstractMultiPartBlock

> extends Block implements IMultiPartBlockModelHolder { public AbstractMultiPartBlock(Properties properties) { @@ -54,27 +56,30 @@ public void setPlacedBy( } @Override - public BlockState updateShape( + protected BlockState updateShape( BlockState state, - Direction direction, - BlockState neighborState, - LevelAccessor level, + LevelReader level, + ScheduledTickAccess ticks, BlockPos pos, - BlockPos neighborPos) { + Direction directionToNeighbour, + BlockPos neighbourPos, + BlockState neighbourState, + RandomSource random + ) { if (!state.hasProperty(this.getPart())) { - return super.updateShape(state, direction, neighborState, level, pos, neighborPos); + return super.updateShape(state, level, ticks, pos, directionToNeighbour, neighbourPos, neighbourState, random); } - Vec3i neighborOffset = neighborPos.subtract(pos); - for (P part : getParts()) { + Vec3i neighborOffset = neighbourPos.subtract(pos); + for (P part : this.getParts()) { Vec3i offset = this.offsetFrom(state, part); // 更新来源偏移值 if (!offset.equals(neighborOffset)) continue; - if (!neighborState.is(this) - || !neighborState.hasProperty(this.getPart()) - || neighborState.getValue(this.getPart()) != part) { + if (!neighbourState.is(this) + || !neighbourState.hasProperty(this.getPart()) + || neighbourState.getValue(this.getPart()) != part) { return Blocks.AIR.defaultBlockState(); } } - return super.updateShape(state, direction, neighborState, level, pos, neighborPos); + return super.updateShape(state, level, ticks, pos, directionToNeighbour, neighbourPos, neighbourState, random); } @Override @@ -84,7 +89,7 @@ public BlockState playerWillDestroy( BlockState state, Player player ) { - if (!level.isClientSide && player.isCreative()) { + if (!level.isClientSide() && player.isCreative()) { this.preventCreativeDropFromMainPart(level, pos, state, player); } return super.playerWillDestroy(level, pos, state, player); @@ -110,7 +115,7 @@ protected void preventCreativeDropFromMainPart( public void removePartsAndUpdate(Level level, BlockPos pos) { BlockState baseState = level.getBlockState(pos); - for (P part : getParts()) { + for (P part : this.getParts()) { BlockPos bp = pos.offset(this.offsetFrom(baseState, part)); BlockState blockState = level.getBlockState(bp); level.setBlock(bp, blockState.getFluidState().createLegacyBlock(), 3, 0); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/multipart/FlexibleMultiPartBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/multipart/FlexibleMultiPartBlock.java index e9c63f5299..df6d97d42a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/multipart/FlexibleMultiPartBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/multipart/FlexibleMultiPartBlock.java @@ -1,6 +1,5 @@ package dev.dubhe.anvilcraft.block.multipart; -import dev.anvilcraft.lib.v2.util.Util; import dev.anvilcraft.lib.v2.util.nullness.NonNullFunction; import dev.dubhe.anvilcraft.block.state.IFlexibleMultiPartBlockState; import net.minecraft.core.BlockPos; @@ -8,7 +7,6 @@ import net.minecraft.data.loot.BlockLootSubProvider; 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.context.BlockPlaceContext; @@ -19,7 +17,7 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; import java.util.function.Consumer; @@ -33,7 +31,7 @@ public abstract class FlexibleMultiPartBlock< public FlexibleMultiPartBlock(Properties properties) { super(properties); - this.mainPart = Arrays.stream(getParts()).filter(IFlexibleMultiPartBlockState::isMain).findFirst().orElse(null); + this.mainPart = Arrays.stream(this.getParts()).filter(IFlexibleMultiPartBlockState::isMain).findFirst().orElse(null); } public abstract Property

getPart(); @@ -45,7 +43,7 @@ public FlexibleMultiPartBlock(Properties properties) { public void forEachPart(Level level, BlockPos pos, Consumer function) { BlockState state = level.getBlockState(pos); if (!state.is(this)) return; - for (P part : getParts()) { + for (P part : this.getParts()) { BlockPos partPos = pos.offset(this.offsetFrom(state, part)); if (level.getBlockState(partPos).is(this)) { function.accept(partPos); @@ -57,15 +55,15 @@ public , H extends Comparable> void updateState(Level l BlockState state = level.getBlockState(pos); if (!state.is(this)) return; state = state.setValue(property, value); - for (P part : getParts()) { + for (P part : this.getParts()) { BlockPos partPos = pos.offset(this.offsetFrom(state, part)); - if (level.getBlockState(partPos).is(this)) level.setBlock(partPos, state.setValue(getPart(), part), flag); + if (level.getBlockState(partPos).is(this)) level.setBlock(partPos, state.setValue(this.getPart(), part), flag); } } @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(getPart(), getAdditionalProperty()); + builder.add(this.getPart(), this.getAdditionalProperty()); } @Override @@ -120,7 +118,7 @@ public BlockState getPlacementState(BlockPlaceContext context) { * 是否有足够的空间放下方块 */ public boolean hasEnoughSpace(BlockState originState, BlockPos pos, LevelReader level) { - for (P part : getParts()) { + for (P part : this.getParts()) { BlockPos pos1 = pos.offset(this.offsetFrom(originState, part)); if (level.isOutsideBuildHeight(pos1)) return false; BlockState state = level.getBlockState(pos1); @@ -132,7 +130,7 @@ public boolean hasEnoughSpace(BlockState originState, BlockPos pos, LevelReader } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -141,7 +139,7 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - return Util.interactionResultConverter().apply(this.use(state, level, pos, player, hand, hitResult)); + return this.use(state, level, pos, player, hand, hitResult); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/multipart/MultiPartBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/multipart/MultiPartBlockEntity.java index dd6cf348d7..e225209d37 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/multipart/MultiPartBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/multipart/MultiPartBlockEntity.java @@ -4,15 +4,15 @@ import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public interface MultiPartBlockEntity

, T extends AbstractMultiPartBlock

> extends EntityBlock { T getMultiBlock(); @Override default @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - if (getMultiBlock().isMainPart(state)) { - return createBlockEntity(pos, state); + if (this.getMultiBlock().isMainPart(state)) { + return this.createBlockEntity(pos, state); } return null; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/multipart/SimpleMultiPartBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/multipart/SimpleMultiPartBlock.java index 91d6c352ea..06033413d0 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/multipart/SimpleMultiPartBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/multipart/SimpleMultiPartBlock.java @@ -1,13 +1,11 @@ package dev.dubhe.anvilcraft.block.multipart; -import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.block.state.ISimpleMultiPartBlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; import net.minecraft.data.loot.BlockLootSubProvider; 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.context.BlockPlaceContext; @@ -15,7 +13,7 @@ import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public abstract class SimpleMultiPartBlock

& ISimpleMultiPartBlockState

> extends AbstractMultiPartBlock

{ @@ -68,7 +66,7 @@ public static & ISimpleMultiPartBlockState> void loot( @Nullable @Override public final BlockState getStateForPlacement(BlockPlaceContext context) { - if (!hasEnoughSpace(context.getClickedPos(), context.getLevel())) return null; // 判断是否有足够空间放置方块 + if (!this.hasEnoughSpace(context.getClickedPos(), context.getLevel())) return null; // 判断是否有足够空间放置方块 return this.getPlacementState(context); } @@ -93,7 +91,7 @@ public boolean hasEnoughSpace(BlockPos pos, LevelReader level) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -102,7 +100,7 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - return Util.interactionResultConverter().apply(this.use(state, level, pos, player, hand, hitResult)); + return this.use(state, level, pos, player, hand, hitResult); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/multipart/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/multipart/package-info.java index 6ca3d1bc81..920f95e785 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/multipart/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/multipart/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.multipart; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/nesting/NestingShulkerBoxBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/nesting/NestingShulkerBoxBlock.java index 95ceaf97ac..a575f05c7b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/nesting/NestingShulkerBoxBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/nesting/NestingShulkerBoxBlock.java @@ -4,11 +4,9 @@ import dev.dubhe.anvilcraft.block.better.BetterBlock; import dev.dubhe.anvilcraft.block.entity.nesting.NestingShulkerBoxBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.item.property.component.OverLimitItemContainerContents; -import net.minecraft.ChatFormatting; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.Component; +import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -18,9 +16,7 @@ import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.item.ItemEntity; 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.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; @@ -28,16 +24,16 @@ import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.ShulkerBoxBlock; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import net.neoforged.neoforge.items.IItemHandler; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.ResourceHandlerUtil; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; import java.util.List; @@ -86,7 +82,7 @@ protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSou public BlockState playerWillDestroy(Level level, BlockPos pos, BlockState state, Player player) { BlockEntity be = level.getBlockEntity(pos); if (be instanceof NestingShulkerBoxBlockEntity nesting) { - if (!level.isClientSide && player.isCreative() && !nesting.getItems().isEmpty()) { + if (!level.isClientSide() && player.isCreative() && !ResourceHandlerUtil.isEmpty(nesting.getItems())) { ItemStack stack = this.asItem().getDefaultInstance(); stack.applyComponents(be.collectComponents()); ItemEntity itemEntity = new ItemEntity( @@ -111,8 +107,8 @@ protected List getDrops(BlockState state, LootParams.Builder params) params = params.withDynamicDrop( ShulkerBoxBlock.CONTENTS, consumer -> { - for (int i = 0; i < box.getItemHandler().getSlots(); i++) { - consumer.accept(box.getItemHandler().getStackInSlot(i)); + for (int i = 0; i < box.getItemHandler().size(); i++) { + consumer.accept(box.getItemHandler().getResource(i).toStack(box.getItemHandler().getAmountAsInt(i))); } } ); @@ -122,34 +118,8 @@ protected List getDrops(BlockState state, LootParams.Builder params) } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (state.is(newState.getBlock())) return; - BlockEntity blockentity = level.getBlockEntity(pos); - super.onRemove(state, level, pos, newState, isMoving); - if (blockentity instanceof ShulkerBoxBlockEntity) { - level.updateNeighbourForOutputSignal(pos, state.getBlock()); - } - } - - @Override - public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltips, TooltipFlag flag) { - super.appendHoverText(stack, context, tooltips, flag); - int validLine = 0; - int nonEmpty = 0; - - for (var stack1 : stack.getOrDefault(ModComponents.OVER_LIMIT_CONTAINER, OverLimitItemContainerContents.EMPTY).nonEmptyItems()) { - nonEmpty++; - if (validLine > 4) continue; - validLine++; - tooltips.add(Component.translatable( - "container.shulkerBox.itemCount", - stack1.getStack().getHoverName(), - stack1.getCount() - )); - } - - if (nonEmpty - validLine <= 0) return; - tooltips.add(Component.translatable("container.shulkerBox.more", nonEmpty - validLine).withStyle(ChatFormatting.ITALIC)); + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); } @Override @@ -166,26 +136,29 @@ protected boolean hasAnalogOutputSignal(BlockState state) { * Returns the analog signal this block emits. This is the signal a comparator can read from it. */ @Override - protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { if (!(level.getBlockEntity(pos) instanceof NestingShulkerBoxBlockEntity be)) return 0; - IItemHandler handler = be.getItemHandler(); + ResourceHandler handler = be.getItemHandler(); float f = 0.0F; - for (int i = 0; i < handler.getSlots(); i++) { - ItemStack stack = handler.getStackInSlot(i); + for (int i = 0; i < handler.size(); i++) { + ItemStack stack = ItemResourceHelper.getStackInSlot(handler, i); if (stack.isEmpty()) continue; - f += (float) stack.getCount() / (float) handler.getSlotLimit(i); + f += (float) stack.getCount() / (float) ItemResourceHelper.getSlotLimit(handler, i); } - f /= (float) handler.getSlots(); + f /= (float) handler.size(); return Mth.lerpDiscrete(f, 0, 15); } @Override - public ItemStack getCloneItemStack(BlockState state, HitResult target, LevelReader level, BlockPos pos, Player player) { - ItemStack stack = super.getCloneItemStack(state, target, level, pos, player); - level.getBlockEntity(pos, ModBlockEntities.NESTING_SHULKER_BOX.get()) - .ifPresent(be -> be.saveToItem(stack, level.registryAccess())); + public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData, Player player) { + ItemStack stack = super.getCloneItemStack(level, pos, state, includeData, player); + if (includeData) { + level.getBlockEntity(pos, ModBlockEntities.NESTING_SHULKER_BOX.get()) + .ifPresent(be -> stack.applyComponents(be.collectComponents())); + } + return stack; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/nesting/OverNestingShulkerBoxBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/nesting/OverNestingShulkerBoxBlock.java index 0e33e28115..2a5d6e6022 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/nesting/OverNestingShulkerBoxBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/nesting/OverNestingShulkerBoxBlock.java @@ -4,11 +4,9 @@ import dev.dubhe.anvilcraft.block.better.BetterBlock; import dev.dubhe.anvilcraft.block.entity.nesting.OverNestingShulkerBoxBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.item.property.component.OverLimitItemContainerContents; -import net.minecraft.ChatFormatting; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.Component; +import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -18,9 +16,7 @@ import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.item.ItemEntity; 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.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; @@ -28,7 +24,6 @@ import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.ShulkerBoxBlock; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BooleanProperty; @@ -36,9 +31,10 @@ import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import net.neoforged.neoforge.items.IItemHandler; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.ResourceHandlerUtil; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; import java.util.List; @@ -113,7 +109,7 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { public BlockState playerWillDestroy(Level level, BlockPos pos, BlockState state, Player player) { BlockEntity be = level.getBlockEntity(pos); if (be instanceof OverNestingShulkerBoxBlockEntity nesting) { - if (!level.isClientSide && player.isCreative() && !nesting.getItems().isEmpty()) { + if (!level.isClientSide() && player.isCreative() && !ResourceHandlerUtil.isEmpty(nesting.getItems())) { ItemStack stack = this.asItem().getDefaultInstance(); stack.applyComponents(be.collectComponents()); ItemEntity itemEntity = new ItemEntity( @@ -138,8 +134,8 @@ protected List getDrops(BlockState state, LootParams.Builder params) params = params.withDynamicDrop( ShulkerBoxBlock.CONTENTS, consumer -> { - for (int i = 0; i < box.getItemHandler().getSlots(); i++) { - consumer.accept(box.getItemHandler().getStackInSlot(i)); + for (int i = 0; i < box.getItemHandler().size(); i++) { + consumer.accept(box.getItemHandler().getResource(i).toStack(box.getItemHandler().getAmountAsInt(i))); } } ); @@ -149,34 +145,8 @@ protected List getDrops(BlockState state, LootParams.Builder params) } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (state.is(newState.getBlock())) return; - BlockEntity blockentity = level.getBlockEntity(pos); - super.onRemove(state, level, pos, newState, isMoving); - if (blockentity instanceof ShulkerBoxBlockEntity) { - level.updateNeighbourForOutputSignal(pos, state.getBlock()); - } - } - - @Override - public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltips, TooltipFlag flag) { - super.appendHoverText(stack, context, tooltips, flag); - int validLine = 0; - int nonEmpty = 0; - - for (var stack1 : stack.getOrDefault(ModComponents.OVER_LIMIT_CONTAINER, OverLimitItemContainerContents.EMPTY).nonEmptyItems()) { - nonEmpty++; - if (validLine > 4) continue; - validLine++; - tooltips.add(Component.translatable( - "container.shulkerBox.itemCount", - stack1.getStack().getHoverName(), - stack1.getCount() - )); - } - - if (nonEmpty - validLine <= 0) return; - tooltips.add(Component.translatable("container.shulkerBox.more", nonEmpty - validLine).withStyle(ChatFormatting.ITALIC)); + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); } @Override @@ -193,26 +163,28 @@ protected boolean hasAnalogOutputSignal(BlockState state) { * Returns the analog signal this block emits. This is the signal a comparator can read from it. */ @Override - protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { if (!(level.getBlockEntity(pos) instanceof OverNestingShulkerBoxBlockEntity be)) return 0; - IItemHandler handler = be.getItemHandler(); + ResourceHandler handler = be.getItemHandler(); float f = 0.0F; - for (int i = 0; i < handler.getSlots(); i++) { - ItemStack stack = handler.getStackInSlot(i); + for (int i = 0; i < handler.size(); i++) { + ItemStack stack = ItemResourceHelper.getStackInSlot(handler, i); if (stack.isEmpty()) continue; - f += (float) stack.getCount() / (float) handler.getSlotLimit(i); + f += (float) stack.getCount() / (float) ItemResourceHelper.getSlotLimit(handler, i); } - f /= (float) handler.getSlots(); + f /= (float) handler.size(); return Mth.lerpDiscrete(f, 0, 15); } @Override - public ItemStack getCloneItemStack(BlockState state, HitResult target, LevelReader level, BlockPos pos, Player player) { - ItemStack stack = super.getCloneItemStack(state, target, level, pos, player); - level.getBlockEntity(pos, ModBlockEntities.OVER_NESTING_SHULKER_BOX.get()) - .ifPresent(be -> be.saveToItem(stack, level.registryAccess())); + public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData, Player player) { + ItemStack stack = super.getCloneItemStack(level, pos, state, includeData, player); + if (includeData) { + level.getBlockEntity(pos, ModBlockEntities.OVER_NESTING_SHULKER_BOX.get()) + .ifPresent(be -> stack.applyComponents(be.collectComponents())); + } return stack; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/nesting/SupercriticalNestingShulkerBoxBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/nesting/SupercriticalNestingShulkerBoxBlock.java index 36eb3d3939..5ecd012e19 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/nesting/SupercriticalNestingShulkerBoxBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/nesting/SupercriticalNestingShulkerBoxBlock.java @@ -4,11 +4,9 @@ import dev.dubhe.anvilcraft.block.better.BetterBlock; import dev.dubhe.anvilcraft.block.entity.nesting.SupercriticalNestingShulkerBoxBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.item.property.component.OverLimitItemContainerContents; -import net.minecraft.ChatFormatting; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.Component; +import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -18,9 +16,7 @@ import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.item.ItemEntity; 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.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; @@ -28,7 +24,6 @@ import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.ShulkerBoxBlock; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BooleanProperty; @@ -36,9 +31,10 @@ import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import net.neoforged.neoforge.items.IItemHandler; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.ResourceHandlerUtil; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; import java.util.List; @@ -124,7 +120,7 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { public BlockState playerWillDestroy(Level level, BlockPos pos, BlockState state, Player player) { BlockEntity be = level.getBlockEntity(pos); if (be instanceof SupercriticalNestingShulkerBoxBlockEntity nesting) { - if (!level.isClientSide && player.isCreative() && !nesting.getItems().isEmpty()) { + if (!level.isClientSide() && player.isCreative() && !ResourceHandlerUtil.isEmpty(nesting.getItems())) { ItemStack stack = this.asItem().getDefaultInstance(); stack.applyComponents(be.collectComponents()); ItemEntity itemEntity = new ItemEntity( @@ -149,8 +145,8 @@ protected List getDrops(BlockState state, LootParams.Builder params) params = params.withDynamicDrop( ShulkerBoxBlock.CONTENTS, consumer -> { - for (int i = 0; i < box.getItemHandler().getSlots(); i++) { - consumer.accept(box.getItemHandler().getStackInSlot(i)); + for (int i = 0; i < box.getItemHandler().size(); i++) { + consumer.accept(box.getItemHandler().getResource(i).toStack(box.getItemHandler().getAmountAsInt(i))); } } ); @@ -160,34 +156,8 @@ protected List getDrops(BlockState state, LootParams.Builder params) } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (state.is(newState.getBlock())) return; - BlockEntity blockentity = level.getBlockEntity(pos); - super.onRemove(state, level, pos, newState, isMoving); - if (blockentity instanceof ShulkerBoxBlockEntity) { - level.updateNeighbourForOutputSignal(pos, state.getBlock()); - } - } - - @Override - public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltips, TooltipFlag flag) { - super.appendHoverText(stack, context, tooltips, flag); - int validLine = 0; - int nonEmpty = 0; - - for (var stack1 : stack.getOrDefault(ModComponents.OVER_LIMIT_CONTAINER, OverLimitItemContainerContents.EMPTY).nonEmptyItems()) { - nonEmpty++; - if (validLine > 4) continue; - validLine++; - tooltips.add(Component.translatable( - "container.shulkerBox.itemCount", - stack1.getStack().getHoverName(), - stack1.getCount() - )); - } - - if (nonEmpty - validLine <= 0) return; - tooltips.add(Component.translatable("container.shulkerBox.more", nonEmpty - validLine).withStyle(ChatFormatting.ITALIC)); + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); } @Override @@ -204,26 +174,28 @@ protected boolean hasAnalogOutputSignal(BlockState state) { * Returns the analog signal this block emits. This is the signal a comparator can read from it. */ @Override - protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { if (!(level.getBlockEntity(pos) instanceof SupercriticalNestingShulkerBoxBlockEntity be)) return 0; - IItemHandler handler = be.getItemHandler(); + ResourceHandler handler = be.getItemHandler(); float f = 0.0F; - for (int i = 0; i < handler.getSlots(); i++) { - ItemStack stack = handler.getStackInSlot(i); + for (int i = 0; i < handler.size(); i++) { + ItemStack stack = ItemResourceHelper.getStackInSlot(handler, i); if (stack.isEmpty()) continue; - f += (float) stack.getCount() / (float) handler.getSlotLimit(i); + f += (float) stack.getCount() / (float) ItemResourceHelper.getSlotLimit(handler, i); } - f /= (float) handler.getSlots(); + f /= (float) handler.size(); return Mth.lerpDiscrete(f, 0, 15); } @Override - public ItemStack getCloneItemStack(BlockState state, HitResult target, LevelReader level, BlockPos pos, Player player) { - ItemStack stack = super.getCloneItemStack(state, target, level, pos, player); - level.getBlockEntity(pos, ModBlockEntities.SUPERCRITICAL_NESTING_SHULKER_BOX.get()) - .ifPresent(be -> be.saveToItem(stack, level.registryAccess())); + public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData, Player player) { + ItemStack stack = super.getCloneItemStack(level, pos, state, includeData, player); + if (includeData) { + level.getBlockEntity(pos, ModBlockEntities.SUPERCRITICAL_NESTING_SHULKER_BOX.get()) + .ifPresent(be -> stack.applyComponents(be.collectComponents())); + } return stack; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/nesting/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/nesting/package-info.java index bc4ac558bf..bbdaa3b26b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/nesting/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/nesting/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.nesting; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/package-info.java deleted file mode 100644 index c0532f7d10..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.block; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/plate/HealthPercentPressurePlateBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/plate/HealthPercentPressurePlateBlock.java index 39b9f83a24..ceedbaf6c7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/plate/HealthPercentPressurePlateBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/plate/HealthPercentPressurePlateBlock.java @@ -9,11 +9,11 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntitySelector; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.boss.EnderDragonPart; +import net.minecraft.world.entity.boss.enderdragon.EnderDragonPart; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.properties.BlockSetType; import net.minecraft.world.phys.AABB; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Set; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/plate/PlayerInventoryPressurePlateBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/plate/PlayerInventoryPressurePlateBlock.java index f7f30b1258..c5ceff71a5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/plate/PlayerInventoryPressurePlateBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/plate/PlayerInventoryPressurePlateBlock.java @@ -37,7 +37,7 @@ protected static float getInventoryOccupiedCapacityMaxPercent(Level level, AABB Inventory inventory = player.getInventory(); int occupiedSlots = 0; - for (ItemStack stack : inventory.items) { + for (ItemStack stack : inventory.getNonEquipmentItems()) { if (!stack.isEmpty()) { occupiedSlots++; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/plate/PowerLevelPressurePlateBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/plate/PowerLevelPressurePlateBlock.java index ddb43c5fd3..2bf96186aa 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/plate/PowerLevelPressurePlateBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/plate/PowerLevelPressurePlateBlock.java @@ -9,6 +9,7 @@ import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntitySelector; +import net.minecraft.world.entity.InsideBlockEffectApplier; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BasePressurePlateBlock; @@ -20,7 +21,7 @@ import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.phys.AABB; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.HashSet; import java.util.Set; @@ -53,8 +54,15 @@ protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSou } @Override - protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - if (!level.isClientSide) { + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + if (!level.isClientSide()) { int i = this.getSignalForState(state); if (i == 0) { this.checkPressed(entity, level, pos, state, i); @@ -72,8 +80,8 @@ protected void checkPressed(@Nullable Entity entity, Level level, BlockPos pos, boolean isActivating = currentSignal > 0; boolean needActivate = expectedSignal > 0; - updateSignal(level, pos, state, currentSignal, expectedSignal); - sendEvent(entity, level, pos, needActivate, isActivating); + this.updateSignal(level, pos, state, currentSignal, expectedSignal); + this.sendEvent(entity, level, pos, needActivate, isActivating); if (needActivate) { level.scheduleTick(new BlockPos(pos), this, this.getPressedTime()); @@ -82,7 +90,7 @@ protected void checkPressed(@Nullable Entity entity, Level level, BlockPos pos, @Override protected int getSignalStrength(Level level, BlockPos pos) { - return getSignalStrength(level, TOUCH_AABB.move(pos), getEntityClasses()); + return this.getSignalStrength(level, TOUCH_AABB.move(pos), this.getEntityClasses()); } protected int getSignalStrength(Level level, AABB box, Set> entityClasses) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/plate/TimeCountedPressurePlateBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/plate/TimeCountedPressurePlateBlock.java index d314466deb..454d8aa68a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/plate/TimeCountedPressurePlateBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/plate/TimeCountedPressurePlateBlock.java @@ -15,7 +15,7 @@ import net.minecraft.world.level.block.state.properties.BlockSetType; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.IntegerProperty; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class TimeCountedPressurePlateBlock extends PressurePlateBlock implements EntityBlock { public final int needTick; @@ -50,7 +50,7 @@ protected BlockState setSignalForState(BlockState state, int signal) { @Override public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return new TimeCountedPressurePlateBlockEntity(pos, state, needTick); + return new TimeCountedPressurePlateBlockEntity(pos, state, this.needTick); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/plate/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/plate/package-info.java index 63c29548ef..3cf50ad705 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/plate/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/plate/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.plate; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeliostatsBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/HeliostatsBlock.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/block/HeliostatsBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/HeliostatsBlock.java index 44723d209b..890241f410 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeliostatsBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/HeliostatsBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -18,7 +18,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.stream.Stream; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/LoadMonitorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/LoadMonitorBlock.java similarity index 89% rename from src/main/java/dev/dubhe/anvilcraft/block/LoadMonitorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/LoadMonitorBlock.java index cb5aa1d9fc..44657f015a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/LoadMonitorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/LoadMonitorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -24,7 +24,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.stream.Stream; @@ -53,22 +53,22 @@ protected void createBlockStateDefinition(StateDefinition.Builder FACING = DirectionalBlock.FACING; public static final BooleanProperty POWERED = BlockStateProperties.POWERED; public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; @@ -67,8 +64,8 @@ public boolean hasAnalogOutputSignal(BlockState state) { } @Override - public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos blockPos) { - BlockEntity blockEntity = level.getBlockEntity(blockPos); + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + BlockEntity blockEntity = level.getBlockEntity(pos); if (blockEntity instanceof BatchCrafterBlockEntity crafterBlockEntity) { return crafterBlockEntity.getRedstoneSignal(); } @@ -77,7 +74,7 @@ public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos bl @Override public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; BlockEntity be = level.getBlockEntity(pos); ItemStack stack = player.getItemInHand(hand); @@ -91,13 +88,13 @@ public InteractionResult use(BlockState state, Level level, BlockPos pos, Player /** * 当玩家交互此方块时调用 * - * @param level 方块所在的世界 - * @param pos 方块所在的位置 - * @param state 方块的状态 - * @param be 方块的方块实体 + * @param level 方块所在的世界 + * @param pos 方块所在的位置 + * @param state 方块的状态 + * @param be 方块的方块实体 * @param player 交互该方块的玩家 - * @param hand 玩家交互该方块的手 - * @param hit 玩家视线与方块的碰撞计算结果 + * @param hand 玩家交互该方块的手 + * @param hit 玩家视线与方块的碰撞计算结果 * @return 此次交互的结果 */ protected abstract InteractionResult playerUse( @@ -112,19 +109,20 @@ protected abstract InteractionResult playerUse( public abstract Item getToastSymbol(); - @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - if (state.is(newState.getBlock())) return; - if (level.getBlockEntity(pos) instanceof IItemHandlerHolder holder) { - Vec3 vec3 = pos.getCenter(); - IItemHandler handler = holder.getItemHandler(); - for (int slot = 0; slot < handler.getSlots(); slot++) { - Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, handler.getStackInSlot(slot)); - } - level.updateNeighbourForOutputSignal(pos, this); - } - super.onRemove(state, level, pos, newState, movedByPiston); - } + // @Override + // protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { + // if (state.is(newState.getBlock())) return; + // if (level.getBlockEntity(pos) instanceof IItemHandlerHolder holder) { + // Vec3 vec3 = pos.getCenter(); + // ResourceHandler handler = holder.getItemHandler(); + // for (int slot = 0; slot < handler.getSlots(); slot++) { + // Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, handler.getStackInSlot(slot)); + // } + // ItemHandlerUtil.dropAllToPos(); + // level.updateNeighbourForOutputSignal(pos, this); + // } + // super.onRemove(state, level, pos, newState, movedByPiston); + // } @Override public boolean useShapeForLightOcclusion(BlockState state) { @@ -147,8 +145,8 @@ public float getShadeBrightness(BlockState state, BlockGetter level, BlockPos po } @Override - public boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { - return false; + protected boolean propagatesSkylightDown(BlockState state) { + return true; } @Override @@ -173,15 +171,15 @@ protected void createBlockStateDefinition(StateDefinition.Builder BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return BaseEntityBlock.createTickerHelper( type, ModBlockEntities.BATCH_CRAFTER.get(), - (level1, pos, blockState, blockEntity) -> blockEntity.tick(level1, pos) + (level1, pos, _, be) -> be.tick(level1, pos) ); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/batch/BatchCutterBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/batch/BatchCutterBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/batch/BatchCutterBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/batch/BatchCutterBlock.java index ae22df0e47..5925b26b89 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/batch/BatchCutterBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/batch/BatchCutterBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block.batch; +package dev.dubhe.anvilcraft.block.power.batch; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.block.entity.batch.BatchCutterBlockEntity; @@ -25,7 +25,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class BatchCutterBlock extends BaseBatchCraftingBlock { public BatchCutterBlock(Properties properties) { @@ -63,7 +63,7 @@ protected InteractionResult playerUse( ); PacketDistributor.sendToPlayer(serverPlayer, new SlotFilterChangePacket(i, entity.getFilter(i))); } - return InteractionResult.SUCCESS_NO_ITEM_USED; + return InteractionResult.SUCCESS; } @Nullable @@ -75,11 +75,11 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Nullable @Override public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return BaseEntityBlock.createTickerHelper( type, ModBlockEntities.BATCH_CUTTER.get(), - (level1, pos, blockState, blockEntity) -> blockEntity.tick(level1, pos) + (level1, pos, _, be) -> be.tick(level1, pos) ); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/batch/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/power/batch/package-info.java new file mode 100644 index 0000000000..cc2d7fe512 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/batch/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.power.batch; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/DischargerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/DischargerBlock.java similarity index 88% rename from src/main/java/dev/dubhe/anvilcraft/block/DischargerBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/consumer/DischargerBlock.java index 898d380201..d6fddcd52d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/DischargerBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/DischargerBlock.java @@ -1,5 +1,6 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.consumer; +import dev.dubhe.anvilcraft.block.power.generator.ChargerBlock; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.util.IStateListener; import net.minecraft.core.BlockPos; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeaterBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/HeaterBlock.java similarity index 96% rename from src/main/java/dev/dubhe/anvilcraft/block/HeaterBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/consumer/HeaterBlock.java index 61abc886d2..cc38d1ebd7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeaterBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/HeaterBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.consumer; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -25,7 +25,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class HeaterBlock extends BaseEntityBlock implements IHammerRemovable { public static final VoxelShape SHAPE = Shapes.or(Block.box(0, 2, 0, 16, 16, 16), Block.box(1, 0, 1, 15, 2, 15)); @@ -67,7 +67,7 @@ public RenderShape getRenderShape(BlockState state) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return createTickerHelper( type, ModBlockEntities.HEATER.get(), (level1, pos, state1, entity) -> entity.tick(level1, pos)); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/InductionLightBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/InductionLightBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/InductionLightBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/consumer/InductionLightBlock.java index cf23e1f396..88e0129d60 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/InductionLightBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/InductionLightBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.consumer; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.BlockPlaceAssist; @@ -13,12 +13,10 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.tags.ItemTags; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -40,10 +38,11 @@ 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.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class InductionLightBlock extends BetterBaseEntityBlock implements IHammerRemovable, SimpleWaterloggedBlock { public static final VoxelShape SHAPE_X = Block.box(0, 6, 6, 16, 10, 10); @@ -153,7 +152,7 @@ public InteractionResult use( BlockHitResult hit ) { ItemStack itemInHand = player.getItemInHand(hand); - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; if (itemInHand.is(ModBlocks.INDUCTION_LIGHT.asItem())) { return BlockPlaceAssist.tryPlace( state, level, pos, player, hand, hit, @@ -169,10 +168,8 @@ public InteractionResult use( return InteractionResult.SUCCESS; } else if (itemInHand.is(ItemTags.AXES)) { level.setBlockAndUpdate(pos, state.setValue(COLOR, LightColor.PRIMARY)); - itemInHand.hurtAndBreak(1, (ServerLevel) level, (ServerPlayer) player, - item -> player.onEquippedItemBroken(item, LivingEntity.getSlotForHand(hand)) - ); - return InteractionResult.CONSUME_PARTIAL; + itemInHand.hurtAndBreak(1, player, hand); + return InteractionResult.SUCCESS; } else if (itemInHand.is(ModItems.VOID_MATTER.asItem())) { level.setBlockAndUpdate(pos, state.setValue(COLOR, LightColor.DARK)); return InteractionResult.SUCCESS; @@ -183,7 +180,7 @@ public InteractionResult use( @Override @Nullable public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) { + if (level.isClientSide()) { return null; } return createTickerHelper( @@ -194,15 +191,15 @@ public BlockEntityTicker getTicker(Level level, Block } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston ) { - if (level.isClientSide) return; + if (level.isClientSide()) return; if (state.getValue(WATERLOGGED)) level.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); if (state.getValue(OVERLOAD)) return; level.setBlock(pos, state.setValue(POWERED, level.hasNeighborSignal(pos)), 2); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ItemCollectorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/ItemCollectorBlock.java similarity index 80% rename from src/main/java/dev/dubhe/anvilcraft/block/ItemCollectorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/consumer/ItemCollectorBlock.java index 2faa024d4a..c39142d018 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ItemCollectorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/ItemCollectorBlock.java @@ -1,8 +1,7 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.consumer; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; import dev.dubhe.anvilcraft.api.power.IPowerComponent; import dev.dubhe.anvilcraft.block.better.BetterBaseEntityBlock; import dev.dubhe.anvilcraft.block.entity.ItemCollectorBlockEntity; @@ -12,7 +11,9 @@ import dev.dubhe.anvilcraft.network.MachineEnableFilterPacket; import dev.dubhe.anvilcraft.network.SlotDisableChangePacket; import dev.dubhe.anvilcraft.network.SlotFilterChangePacket; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.RandomSource; @@ -34,15 +35,16 @@ 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.redstone.Orientation; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import org.jspecify.annotations.Nullable; import java.util.List; -import static dev.dubhe.anvilcraft.block.entity.ItemCollectorBlockEntity.POACHING_COLLECTOR_MAP; - public class ItemCollectorBlock extends BetterBaseEntityBlock implements IHammerRemovable { public static final BooleanProperty POWERED = BlockStateProperties.POWERED; public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; @@ -76,34 +78,34 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { } @Override - public void onRemove( + protected void affectNeighborsAfterRemoval( BlockState state, - Level level, + ServerLevel level, BlockPos pos, - BlockState newState, boolean movedByPiston ) { - if (state.is(newState.getBlock())) return; + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); if (level.getBlockEntity(pos) instanceof ItemCollectorBlockEntity entity) { List chunkPosList = entity.getPoachingMapPositions(8); for (ChunkPos chunkPos : chunkPosList) { - if (POACHING_COLLECTOR_MAP.containsKey(level) && POACHING_COLLECTOR_MAP.get(level).containsKey(chunkPos)) { - List list = POACHING_COLLECTOR_MAP.get(level).get(chunkPos); + if ( + ItemCollectorBlockEntity.POACHING_COLLECTOR_MAP.containsKey(level) + && ItemCollectorBlockEntity.POACHING_COLLECTOR_MAP.get(level).containsKey(chunkPos) + ) { + List list = ItemCollectorBlockEntity.POACHING_COLLECTOR_MAP.get(level).get(chunkPos); list.remove(entity); } } entity.setRemoved(); Vec3 vec3 = entity.getBlockPos().getCenter(); - FilteredItemStackHandler depository = entity.getItemHandler(); - for (int slot = 0; slot < depository.getSlots(); slot++) { - Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, depository.getStackInSlot(slot)); + ResourceHandler depository = entity.getItemHandler(); + for (int slot = 0; slot < depository.size(); slot++) { + Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, ItemResourceHelper.getStackInSlot(depository, slot)); } - level.updateNeighbourForOutputSignal(pos, this); } - super.onRemove(state, level, pos, newState, movedByPiston); } @Nullable @@ -113,11 +115,14 @@ public BlockEntityTicker getTicker( BlockState state, BlockEntityType type ) { - if (level.isClientSide) { + if (level.isClientSide()) { return null; } return createTickerHelper( - type, ModBlockEntities.ITEM_COLLECTOR.get(), (level1, blockPos, blockState, blockEntity) -> blockEntity.tick(level1, blockPos)); + type, + ModBlockEntities.ITEM_COLLECTOR.get(), + (level1, blockPos, _, blockEntity) -> blockEntity.tick(level1, blockPos) + ); } @Override @@ -142,7 +147,7 @@ public InteractionResult use( Player player, InteractionHand hand, BlockHitResult hit) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } BlockEntity blockEntity = level.getBlockEntity(pos); @@ -167,14 +172,14 @@ public InteractionResult use( } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston) { - if (level.isClientSide) { + if (level.isClientSide()) { return; } level.setBlock(pos, state.setValue(POWERED, level.hasNeighborSignal(pos)), 2); @@ -193,7 +198,7 @@ public RenderShape getRenderShape(BlockState state) { } @Override - public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos blockPos) { + protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos blockPos, Direction direction) { BlockEntity blockEntity = level.getBlockEntity(blockPos); if (blockEntity instanceof ItemCollectorBlockEntity itemCollectorBlockEntity) { return itemCollectorBlockEntity.getRedstoneSignal(); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/TeslaTowerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/TeslaTowerBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/TeslaTowerBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/consumer/TeslaTowerBlock.java index 6a87672106..1155067ab6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/TeslaTowerBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/TeslaTowerBlock.java @@ -1,6 +1,5 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.consumer; -import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.IHasMultiBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.api.power.IPowerComponent; @@ -17,7 +16,6 @@ import net.minecraft.server.level.ServerPlayer; 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.context.BlockPlaceContext; @@ -35,13 +33,14 @@ import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class TeslaTowerBlock extends SimpleMultiPartBlock @@ -123,8 +122,8 @@ public BlockState placedState(Vertical4PartHalf part, BlockState state) { @Override public BlockState playerWillDestroy( Level level, BlockPos pos, BlockState state, Player player) { - if (level.isClientSide) return state; - onRemove(level, pos, state); + if (level.isClientSide()) return state; + this.onRemove(level, pos, state); super.playerWillDestroy(level, pos, state, player); return state; } @@ -143,21 +142,21 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return (level1, pos, state1, entity) -> { if (entity instanceof TeslaTowerBlockEntity entity1) entity1.tick(); }; } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston) { - if (level.isClientSide) { + if (level.isClientSide()) { return; } if (state.getValue(HALF) != Vertical4PartHalf.BOTTOM) return; @@ -196,7 +195,7 @@ protected InteractionResult useWithoutItem( Player player, BlockHitResult hitResult ) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } if (state.is(this)) { @@ -213,7 +212,7 @@ protected InteractionResult useWithoutItem( } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -222,13 +221,12 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - if (level.isClientSide) return ItemInteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; if (player instanceof ServerPlayer serverPlayer) { if (level.getBlockEntity(pos) instanceof TeslaTowerBlockEntity be && player.getItemInHand(hand).is(ModItems.DISK)) { - return Util.interactionResultConverter() - .apply(be.useDisk(level, serverPlayer, hand, serverPlayer.getItemInHand(hand), hitResult)); + return be.useDisk(level, serverPlayer, hand, serverPlayer.getItemInHand(hand), hitResult); } } return super.useItemOn(stack, state, level, pos, player, hand, hitResult); } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/package-info.java new file mode 100644 index 0000000000..1e36a885ae --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/consumer/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.power.consumer; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BasePowerConverterBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/BasePowerConverterBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/BasePowerConverterBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/converter/BasePowerConverterBlock.java index cec32634d5..e8b5776b0e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/BasePowerConverterBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/BasePowerConverterBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.converter; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.api.power.IPowerComponent; @@ -21,16 +21,16 @@ 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.pathfinder.PathComputationType; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public abstract class BasePowerConverterBlock extends BetterBaseEntityBlock implements IHammerRemovable { private final int inputPower; - public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final EnumProperty FACING = BlockStateProperties.FACING; public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; /** @@ -92,7 +92,7 @@ public RenderShape getRenderShape(BlockState state) { @Nullable @Override public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return new PowerConverterBlockEntity(ModBlockEntities.POWER_CONVERTER.get(), pos, state, inputPower); + return new PowerConverterBlockEntity(ModBlockEntities.POWER_CONVERTER.get(), pos, state, this.inputPower); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/PowerConverterBigBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterBigBlock.java similarity index 96% rename from src/main/java/dev/dubhe/anvilcraft/block/PowerConverterBigBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterBigBlock.java index c286d7bdd9..d8d0df23e6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/PowerConverterBigBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterBigBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.converter; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/PowerConverterMiddleBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterMiddleBlock.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/block/PowerConverterMiddleBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterMiddleBlock.java index 0884c0614c..645397bbc3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/PowerConverterMiddleBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterMiddleBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.converter; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/PowerConverterSmallBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterSmallBlock.java similarity index 96% rename from src/main/java/dev/dubhe/anvilcraft/block/PowerConverterSmallBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterSmallBlock.java index b0c3b27055..d262bb6e11 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/PowerConverterSmallBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/PowerConverterSmallBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.converter; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/converter/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/package-info.java new file mode 100644 index 0000000000..5817327cdd --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/converter/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.power.converter; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ChargeCollectorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/ChargeCollectorBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/ChargeCollectorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/generator/ChargeCollectorBlock.java index c2094b756e..12ad2e6a85 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ChargeCollectorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/ChargeCollectorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.generator; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -23,7 +23,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class ChargeCollectorBlock extends BetterBaseEntityBlock implements IHammerRemovable { public static VoxelShape SHAPE = Shapes.or( @@ -88,9 +88,9 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - super.onRemove(state, level, pos, newState, movedByPiston); - if (!state.is(newState.getBlock()) && state.getValue(POWERED)) { + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); + if (state.getValue(POWERED)) { this.updateNeighbours(level, pos); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/generator/ChargerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/ChargerBlock.java new file mode 100644 index 0000000000..42127bad5d --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/ChargerBlock.java @@ -0,0 +1,195 @@ +package dev.dubhe.anvilcraft.block.power.generator; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.api.itemhandler.FilteredItemStackHandler; +import dev.dubhe.anvilcraft.api.power.IPowerComponent; +import dev.dubhe.anvilcraft.block.entity.ChargerBlockEntity; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; +import dev.dubhe.anvilcraft.init.block.ModBlocks; +import dev.dubhe.anvilcraft.util.IStateListener; +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.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +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.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +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.Property; +import net.minecraft.world.level.redstone.Orientation; +import net.minecraft.world.phys.BlockHitResult; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.Nullable; + +public class ChargerBlock extends BaseEntityBlock implements IHammerRemovable, IHammerChangeable { + public static final BooleanProperty POWERED = BlockStateProperties.POWERED; + public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; + + public ChargerBlock(Properties properties) { + super(properties); + registerDefaultState(getStateDefinition().any().setValue(POWERED, false).setValue(OVERLOAD, true)); + } + + @Override + protected MapCodec codec() { + return simpleCodec(ChargerBlock::new); + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return defaultBlockState().setValue(POWERED, false).setValue(OVERLOAD, true); + } + + @Nullable + @Override + public BlockEntityTicker getTicker( + Level level, + BlockState state, + BlockEntityType type + ) { + if (level.isClientSide()) { + return null; + } + return createTickerHelper( + type, + ModBlockEntities.CHARGER.get(), + (level1, blockPos, _, be) -> be.tick(level1, blockPos) + ); + } + + @Override + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { + if (level.isClientSide()) return; + level.setBlock(pos, state.setValue(POWERED, level.hasNeighborSignal(pos)), 2); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ChargerBlockEntity(ModBlockEntities.CHARGER.get(), pos, state); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(POWERED).add(OVERLOAD); + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + level.updateNeighbourForOutputSignal(pos, this); + } + + @Override + public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (state.getValue(POWERED) && !level.hasNeighborSignal(pos)) { + level.setBlock(pos, state.cycle(POWERED), 2); + } + } + + @SuppressWarnings("unchecked") + @Override + public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { + level.setBlock(blockPos, ModBlocks.DISCHARGER.getDefaultState(), 2); + if (level.getBlockEntity(blockPos) instanceof IStateListener listener) { + IStateListener self = (IStateListener) listener; + self.notifyStateChanged(false); + } + return true; + } + + @Override + public @Nullable Property getChangeableProperty(BlockState blockState) { + return null; + } + + @Override + protected boolean hasAnalogOutputSignal(BlockState state) { + return true; + } + + @Override + protected int getAnalogOutputSignal(BlockState state, Level level, BlockPos pos, Direction direction) { + BlockEntity blockEntity = level.getBlockEntity(pos); + return blockEntity instanceof ChargerBlockEntity charger ? charger.getAnalogRedstoneSignal() : 0; + } + + @Override + protected InteractionResult useItemOn( + ItemStack stack, + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hit + ) { + if (level.isClientSide()) return super.useItemOn(stack, state, level, pos, player, hand, hit); + if (!(level.getBlockEntity(pos) instanceof ChargerBlockEntity charger)) { + return super.useItemOn(stack, state, level, pos, player, hand, hit); + } + // 玩家空手时尝试取出物品 + FilteredItemStackHandler handler = charger.getFilteredItemStackHandler(); + ItemResource resource = ItemResource.of(stack); + if (stack.isEmpty()) { + // 优先从输出槽(槽位2)取物品,如果为空则从输入槽(槽位0)取 + for (int slot : new int[] {2, 0}) { + ItemResource resourceIn = handler.getResource(slot); + if (resourceIn.isEmpty()) continue; + try (Transaction transaction = Transaction.openRoot()) { + int extracted = handler.extract(slot, resourceIn, Integer.MAX_VALUE, transaction); + if (extracted == 0) continue; + transaction.commit(); + player.getInventory().placeItemBackInInventory(resourceIn.toStack(extracted)); + level.playSound( + null, + pos, + SoundEvents.ITEM_PICKUP, + SoundSource.PLAYERS, + .2F, + 1F + level.getRandom().nextFloat() + ); + return InteractionResult.SUCCESS; + } + } + } else if (charger.containsValidItem(resource)) { + try (Transaction transaction = Transaction.openRoot()) { + int inserted = handler.insert(0, resource, stack.getCount(), transaction); + if (inserted == 0) return super.useItemOn(stack, state, level, pos, player, hand, hit); + transaction.commit(); + stack.shrink(inserted); + return InteractionResult.SUCCESS; + } + } + return super.useItemOn(stack, state, level, pos, player, hand, hit); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CreativeGeneratorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/CreativeGeneratorBlock.java similarity index 95% rename from src/main/java/dev/dubhe/anvilcraft/block/CreativeGeneratorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/generator/CreativeGeneratorBlock.java index 38750df623..0d8aec219b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/CreativeGeneratorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/CreativeGeneratorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.generator; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -25,7 +25,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class CreativeGeneratorBlock extends BetterBaseEntityBlock implements IHammerRemovable { public static final VoxelShape SHAPE = Block.box(0, 0, 0, 16, 4, 16); @@ -40,7 +40,6 @@ protected MapCodec codec() { } @Override - @SuppressWarnings({"UnreachableCode"}) public InteractionResult use( BlockState state, Level level, @@ -49,7 +48,7 @@ public InteractionResult use( InteractionHand hand, BlockHitResult hit ) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } if (level.getBlockEntity(pos) instanceof CreativeGeneratorBlockEntity entity diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HeatCollectorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/HeatCollectorBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/HeatCollectorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/generator/HeatCollectorBlock.java index 59980d3059..ed0fb067ee 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HeatCollectorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/HeatCollectorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.generator; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -23,7 +23,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class HeatCollectorBlock extends BaseEntityBlock implements IHammerRemovable { public static final VoxelShape SHAPE = Shapes.or(Block.box(0, 0, 0, 16, 4, 16)); @@ -94,9 +94,9 @@ private void updateNeighbours(Level level, BlockPos pos) { } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - super.onRemove(state, level, pos, newState, movedByPiston); - if (!state.is(newState.getBlock()) && state.getValue(POWERED)) { + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); + if (state.getValue(POWERED)) { this.updateNeighbours(level, pos); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/VoidEnergyCollectorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/VoidEnergyCollectorBlock.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/block/VoidEnergyCollectorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/generator/VoidEnergyCollectorBlock.java index b6bafccc8d..33509d7d21 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/VoidEnergyCollectorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/VoidEnergyCollectorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.generator; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -26,7 +26,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Optional; @@ -83,9 +83,9 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - super.onRemove(state, level, pos, newState, movedByPiston); - if (!state.is(newState.getBlock()) && state.getValue(POWERED)) { + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); + if (state.getValue(POWERED)) { this.updateNeighbours(level, pos); } } @@ -93,9 +93,9 @@ protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState @Override public @Nullable BlockState getStateForPlacement(BlockPlaceContext context) { if (VoidEnergyCollectorBlockEntity.isAnotherCollectorNearby(context.getLevel(), context.getClickedPos())) { - Optional.ofNullable(context.getPlayer()).ifPresent(player -> player.displayClientMessage( + Optional.ofNullable(context.getPlayer()).ifPresent(player -> player.sendOverlayMessage( Component.translatable("block.anvilcraft.void_energy_collector.placement_too_close_to_another") - .withStyle(ChatFormatting.RED), true)); + .withStyle(ChatFormatting.RED))); } return super.getStateForPlacement(context); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/generator/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/package-info.java new file mode 100644 index 0000000000..4ac9035ee7 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/generator/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.power.generator; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/power/package-info.java new file mode 100644 index 0000000000..dc434efbe4 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.power; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/AccelerationRingBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/ring/AccelerationRingBlock.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/block/AccelerationRingBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/ring/AccelerationRingBlock.java index 86e30ecb25..7c50f3de77 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/AccelerationRingBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/ring/AccelerationRingBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.ring; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -26,21 +26,21 @@ 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.block.state.properties.Property; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; -public class AccelerationRingBlock extends FlexibleMultiPartBlock +public class AccelerationRingBlock extends FlexibleMultiPartBlock, Direction> implements MultiPartBlockEntity, IHammerRemovable, IHammerChangeable { public static final EnumProperty HALF = EnumProperty.create("half", DirectionCube3x3PartHalf.class); - public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final EnumProperty FACING = BlockStateProperties.FACING; public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; public static final EnumProperty SWITCH = IPowerComponent.SWITCH; @@ -65,7 +65,7 @@ public DirectionCube3x3PartHalf[] getParts() { } @Override - public DirectionProperty getAdditionalProperty() { + public EnumProperty getAdditionalProperty() { return FACING; } @@ -91,15 +91,15 @@ public BlockState placedState(DirectionCube3x3PartHalf part, BlockState state) { } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, + Block block, + @Nullable Orientation orientation, boolean movedByPiston ) { - boolean isSignal = Arrays.stream(getParts()) + boolean isSignal = Arrays.stream(this.getParts()) .anyMatch(it -> level.hasNeighborSignal( pos.subtract(state.getValue(this.getPart()).getOffset()) .offset(it.getOffset()) @@ -140,7 +140,7 @@ protected VoxelShape getInteractionShape(BlockState state, BlockGetter level, Bl } @Override - protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } @@ -173,7 +173,7 @@ protected float getShadeBrightness(BlockState state, BlockGetter getter, BlockPo @Override public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { - this.change(blockPos, level, (state) -> state.cycle(FACING)); + this.change(blockPos, level, state -> state.cycle(FACING)); return true; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/DeflectionRingBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/ring/DeflectionRingBlock.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/block/DeflectionRingBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/ring/DeflectionRingBlock.java index 011cf6d89d..a1747c3290 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/DeflectionRingBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/ring/DeflectionRingBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.ring; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -27,20 +27,20 @@ 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.block.state.properties.Property; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; -public class DeflectionRingBlock extends FlexibleMultiPartBlock +public class DeflectionRingBlock extends FlexibleMultiPartBlock, Direction> implements MultiPartBlockEntity, IHammerRemovable, IHammerChangeable { public static final EnumProperty HALF = EnumProperty.create("half", DirectionCube3x3PartHalf.class); - public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final EnumProperty FACING = BlockStateProperties.FACING; public static final BooleanProperty OVERLOAD = IPowerComponent.OVERLOAD; public static final EnumProperty SWITCH = IPowerComponent.SWITCH; @@ -65,7 +65,7 @@ public DirectionCube3x3PartHalf[] getParts() { } @Override - public DirectionProperty getAdditionalProperty() { + public EnumProperty getAdditionalProperty() { return FACING; } @@ -90,17 +90,17 @@ public BlockState placedState(DirectionCube3x3PartHalf part, BlockState state) { } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston ) { - boolean isSignal = Arrays.stream(getParts()) + boolean isSignal = Arrays.stream(this.getParts()) .anyMatch(it -> level.hasNeighborSignal( - pos.subtract(state.getValue(getPart()).getOffset()).offset(it.getOffset()) + pos.subtract(state.getValue(this.getPart()).getOffset()).offset(it.getOffset()) )); if (isSignal && state.getValue(SWITCH) == IPowerComponent.Switch.ON) { updateState(level, pos, SWITCH, IPowerComponent.Switch.OFF, 3); @@ -160,7 +160,7 @@ protected boolean hasAnalogOutputSignal(BlockState state) { } @Override - protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) { + protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos, Direction direction) { if (!(blockState.getBlock() instanceof AbstractMultiPartBlock abstractMultiPartBlock)) return 0; BlockPos blockPos = abstractMultiPartBlock.getMainPartPos(pos, blockState); if (!(level.getBlockEntity(blockPos) instanceof DeflectionRingBlockEntity blockEntity)) return 0; @@ -175,7 +175,7 @@ protected float getShadeBrightness(BlockState state, BlockGetter getter, BlockPo @Override public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { - this.change(blockPos, level, (state) -> state.cycle(FACING)); + this.change(blockPos, level, state -> state.cycle(FACING)); return true; } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/ring/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/power/ring/package-info.java new file mode 100644 index 0000000000..2ada09f2d5 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/ring/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.power.ring; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/RemoteTransmissionPoleBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/RemoteTransmissionPoleBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/RemoteTransmissionPoleBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/RemoteTransmissionPoleBlock.java index 130acc3644..80ec3d8a88 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/RemoteTransmissionPoleBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/RemoteTransmissionPoleBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.transmitting; import dev.dubhe.anvilcraft.api.IHasMultiBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -24,10 +24,11 @@ import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class RemoteTransmissionPoleBlock extends SimpleMultiPartBlock @@ -111,8 +112,8 @@ public BlockState placedState(Vertical4PartHalf part, BlockState state) { @Override public BlockState playerWillDestroy( Level level, BlockPos pos, BlockState state, Player player) { - if (level.isClientSide) return state; - onRemove(level, pos, state); + if (level.isClientSide()) return state; + this.onRemove(level, pos, state); super.playerWillDestroy(level, pos, state, player); return state; } @@ -127,7 +128,7 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return (level1, pos, state1, entity) -> { if (entity instanceof RemoteTransmissionPoleBlockEntity be) be.tick(level1, pos); }; @@ -135,14 +136,14 @@ public BlockEntityTicker getTicker( @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston) { - if (level.isClientSide) { + if (level.isClientSide()) { return; } if (state.getValue(HALF) != Vertical4PartHalf.BOTTOM) return; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/TransmissionPoleBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/TransmissionPoleBlock.java similarity index 95% rename from src/main/java/dev/dubhe/anvilcraft/block/TransmissionPoleBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/TransmissionPoleBlock.java index 5b79606ab5..f60d0df964 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/TransmissionPoleBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/TransmissionPoleBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.power.transmitting; import dev.dubhe.anvilcraft.api.IHasMultiBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -23,10 +23,11 @@ import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class TransmissionPoleBlock extends SimpleMultiPartBlock implements IHammerRemovable, IHasMultiBlock, EntityBlock { @@ -115,7 +116,7 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return (level1, pos, state1, entity) -> { if (entity instanceof TransmissionPoleBlockEntity be) be.tick(level1, pos); }; @@ -123,14 +124,14 @@ public BlockEntityTicker getTicker( @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston) { - if (level.isClientSide) return; + if (level.isClientSide()) return; if (state.getValue(HALF) != Vertical3PartHalf.BOTTOM) return; BlockPos topPos = pos.above(2); BlockState topState = level.getBlockState(topPos); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/package-info.java new file mode 100644 index 0000000000..84d9e2926f --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/power/transmitting/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.power.transmitting; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/production/CrabTrapBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/production/CrabTrapBlock.java new file mode 100644 index 0000000000..3274d40422 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/production/CrabTrapBlock.java @@ -0,0 +1,219 @@ +package dev.dubhe.anvilcraft.block.production; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.block.better.BetterBaseEntityBlock; +import dev.dubhe.anvilcraft.block.entity.CrabTrapBlockEntity; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; +import dev.dubhe.anvilcraft.init.loot.ModLootTables; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.item.ItemEntity; +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.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +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.EnumProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.Nullable; + +public class CrabTrapBlock extends BetterBaseEntityBlock implements SimpleWaterloggedBlock, IHammerRemovable { + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + public CrabTrapBlock(Properties properties) { + super(properties); + registerDefaultState( + getStateDefinition().any() + .setValue(FACING, Direction.NORTH) + .setValue(WATERLOGGED, false) + ); + } + + @Override + protected MapCodec codec() { + return simpleCodec(CrabTrapBlock::new); + } + + @Override + public BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirror) { + return this.rotate(state, mirror.getRotation(state.getValue(FACING))); + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState() + .setValue(FACING, context.getHorizontalDirection().getOpposite()) + .setValue( + WATERLOGGED, + context.getLevel() + .getFluidState(context.getClickedPos()) + .getType() + == Fluids.WATER); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING); + builder.add(WATERLOGGED); + } + + @Override + public FluidState getFluidState(BlockState state) { + return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(state); + } + + @Override + public boolean isRandomlyTicking(BlockState state) { + return state.getValue(WATERLOGGED); + } + + @Override + public void randomTick( + BlockState state, + ServerLevel level, + BlockPos pos, + RandomSource random) { + int times = 0; + for (Direction face : Direction.values()) { + if (level.getFluidState(pos.relative(face)).is(Fluids.WATER)) times++; + } + + if (times >= 3) { + // 获取战利品并放入 block entity + this.tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_COMMON); + this.tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_RIVER); + this.tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_OCEAN); + this.tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_WARM_OCEAN); + this.tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_SWAMP); + this.tryInsertLoot(state, level, pos, ModLootTables.CRAB_TRAP_JUNGLE); + } + } + + @Override + public InteractionResult use( + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hit + ) { + if (!level.isClientSide()) { + CrabTrapBlockEntity blockEntity = (CrabTrapBlockEntity) level.getBlockEntity(pos); + if (blockEntity != null) { + ResourceHandler itemHandler = blockEntity.getItemHandler(); + for (int i = 0; i < itemHandler.size(); i++) { + ItemResource resource = itemHandler.getResource(i); + if (resource.isEmpty()) continue; + try (Transaction transaction = Transaction.openRoot()) { + int extracted = itemHandler.extract(i, resource, Integer.MAX_VALUE, transaction); + if (extracted <= 0) continue; + Vec3 center = pos.relative(Direction.UP).getCenter(); + ItemStack stack = resource.toStack(extracted); + ItemEntity itemEntity = new ItemEntity(level, center.x(), center.y(), center.z(), stack, 0, 0.2, 0); + itemEntity.setDefaultPickUpDelay(); + level.addFreshEntity(itemEntity); + transaction.commit(); + } + } + blockEntity.setChanged(); + } + } + return InteractionResult.SUCCESS; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new CrabTrapBlockEntity(ModBlockEntities.CRAB_TRAP.get(), pos, state); + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected void affectNeighborsAfterRemoval( + BlockState state, + ServerLevel level, + BlockPos pos, + boolean movedByPiston + ) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); + if (level.getBlockEntity(pos) instanceof CrabTrapBlockEntity entity) { + Vec3 vec3 = entity.getBlockPos().getCenter(); + ResourceHandler itemHandler = entity.getItemHandler(); + for (int slot = 0; slot < itemHandler.size(); slot++) { + Containers.dropItemStack(level, vec3.x, vec3.y, vec3.z, ItemResourceHelper.getStackInSlot(itemHandler, slot)); + } + } + } + + private void tryInsertLoot( + BlockState state, + ServerLevel level, + BlockPos pos, + ResourceKey loot + ) { + if (state.hasBlockEntity()) { + LootParams lootParams = new LootParams.Builder(level) + .withParameter(LootContextParams.ORIGIN, pos.getCenter()) + .create(LootContextParamSets.CHEST); + + LootTable lootTable = level.getServer().reloadableRegistries().getLootTable(loot); + ObjectArrayList items = lootTable.getRandomItems(lootParams); + if (items.isEmpty()) return; + CrabTrapBlockEntity blockEntity = (CrabTrapBlockEntity) level.getBlockEntity(pos); + if (blockEntity != null) { + ResourceHandler handler = blockEntity.getItemHandler(); + for (ItemStack item : items) { + ItemResource resource = ItemResource.of(item); + int amount = item.getCount(); + try (Transaction transaction = Transaction.openRoot()) { + handler.insert(resource, amount, transaction); + transaction.commit(); + } + } + blockEntity.setChanged(); + } + } + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/MineralFountainBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/production/MineralFountainBlock.java similarity index 77% rename from src/main/java/dev/dubhe/anvilcraft/block/MineralFountainBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/production/MineralFountainBlock.java index 64b3058998..4d86357220 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/MineralFountainBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/production/MineralFountainBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.production; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.block.entity.MineralFountainBlockEntity; @@ -6,15 +6,18 @@ import dev.dubhe.anvilcraft.util.TriggerUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; 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.RenderShape; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class MineralFountainBlock extends BaseEntityBlock { public MineralFountainBlock(Properties properties) { @@ -36,11 +39,11 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType blockEntityType) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; return createTickerHelper( blockEntityType, ModBlockEntities.MINERAL_FOUNTAIN.get(), - (level1, pos, state1, entity) -> entity.tick()); + (_, _, _, entity) -> entity.tick()); } @Override @@ -50,7 +53,7 @@ public RenderShape getRenderShape(BlockState state) { @Override protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { - setTickCount(level, pos); + this.setTickCount(level, pos); if (!oldState.is(state.getBlock())) TriggerUtil.mineralFountainCreate(level, pos); super.onPlace(state, level, pos, oldState, movedByPiston); } @@ -58,14 +61,18 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o @Override protected BlockState updateShape( BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, Direction direction, + BlockPos neighborPos, BlockState neighborState, - LevelAccessor level, - BlockPos pos, - BlockPos neighborPos + RandomSource random ) { - setTickCount(level, pos); - return super.updateShape(state, direction, neighborState, level, pos, neighborPos); + if (level instanceof LevelAccessor levelAccessor) { + this.setTickCount(levelAccessor, pos); + } + return super.updateShape(state, level, ticks, pos, direction, neighborPos, neighborState, random); } private void setTickCount(LevelAccessor level, BlockPos pos) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/production/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/production/package-info.java new file mode 100644 index 0000000000..c7010a9bb2 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/production/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.production; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/SlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/sliding/SlidingRailBlock.java deleted file mode 100644 index 5920eb244b..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/SlidingRailBlock.java +++ /dev/null @@ -1,168 +0,0 @@ -package dev.dubhe.anvilcraft.block.sliding; - -import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; -import dev.dubhe.anvilcraft.entity.SlidingBlockEntity; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction.Axis; -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.block.Block; -import net.minecraft.world.level.block.RotatedPillarBlock; -import net.minecraft.world.level.block.Rotation; -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.EnumProperty; -import net.minecraft.world.level.block.state.properties.Property; -import net.minecraft.world.phys.shapes.BooleanOp; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.neoforge.common.util.TriState; -import org.jetbrains.annotations.Nullable; - -import java.util.stream.Stream; - -public class SlidingRailBlock extends BaseSlidingRailBlock implements IHammerChangeable { - public static final VoxelShape AABB_X = Stream.of( - Block.box(0, 6, 11, 16, 12, 14), - Block.box(0, 0, 0, 16, 6, 16), - Block.box(0, 12, 0, 16, 16, 5), - Block.box(0, 12, 11, 16, 16, 16), - Block.box(0, 6, 2, 16, 12, 5) - ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get(); - public static final VoxelShape AABB_Z = Stream.of( - Block.box(2, 6, 0, 5, 12, 16), - Block.box(0, 0, 0, 16, 6, 16), - Block.box(11, 12, 0, 16, 16, 16), - Block.box(0, 12, 0, 5, 16, 16), - Block.box(11, 6, 0, 14, 12, 16) - ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get(); - public static final VoxelShape AABB_Y = Stream.of( - Block.box(0, 0, 0, 16, 6, 16), - Block.box(11, 6, 11, 16, 16, 16), - Block.box(0, 6, 11, 5, 16, 16), - Block.box(0, 6, 0, 5, 16, 5), - Block.box(11, 6, 0, 16, 16, 5) - ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get(); - public static final EnumProperty AXIS = BlockStateProperties.AXIS; - - public SlidingRailBlock(Properties properties) { - super(properties); - registerDefaultState(getStateDefinition().any().setValue(AXIS, Axis.X)); - } - - @Nullable - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - Axis axis = context.getHorizontalDirection().getOpposite().getAxis(); - Level level = context.getLevel(); - BlockPos pos = context.getClickedPos(); - if ( - (isOtherRailInAxis(level, pos, Axis.X, -1) == TriState.TRUE - || isOtherRailInAxis(level, pos, Axis.X, 1) == TriState.TRUE) - && (isOtherRailInAxis(level, pos, Axis.Z, -1) == TriState.TRUE - || isOtherRailInAxis(level, pos, Axis.Z, 1) == TriState.TRUE) - ) { - axis = Axis.Y; - } - return this.defaultBlockState().setValue(AXIS, axis); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(AXIS); - } - - @Override - protected boolean useShapeForLightOcclusion(BlockState state) { - return true; - } - - @Override - public VoxelShape getShape( - BlockState blockState, - BlockGetter blockGetter, - BlockPos blockPos, - CollisionContext collisionContext - ) { - return switch (blockState.getValue(AXIS)) { - case X -> AABB_X; - case Y -> AABB_Y; - case Z -> AABB_Z; - }; - } - - @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { - if (isOtherRailInAxis(level, pos, Axis.X, -1) == TriState.TRUE - || isOtherRailInAxis(level, pos, Axis.X, 1) == TriState.TRUE - ) { - if (state.getValue(AXIS) != Axis.Y - && (isOtherRailInAxis(level, pos, Axis.Z, -1) == TriState.TRUE - || isOtherRailInAxis(level, pos, Axis.Z, 1) == TriState.TRUE) - ) { - level.setBlockAndUpdate(pos, state.setValue(AXIS, Axis.Y)); - } - if (state.getValue(AXIS) == Axis.Y - && isOtherRailInAxis(level, pos, Axis.Z, -1) != TriState.TRUE - && isOtherRailInAxis(level, pos, Axis.Z, 1) != TriState.TRUE - ) { - level.setBlockAndUpdate(pos, state.setValue(AXIS, Axis.X)); - } - } else if ( - isOtherRailInAxis(level, pos, Axis.Z, -1) == TriState.TRUE - || isOtherRailInAxis(level, pos, Axis.Z, 1) == TriState.TRUE - ) { - if (state.getValue(AXIS) == Axis.Y - && isOtherRailInAxis(level, pos, Axis.X, -1) != TriState.TRUE - && isOtherRailInAxis(level, pos, Axis.X, 1) != TriState.TRUE - ) { - level.setBlockAndUpdate(pos, state.setValue(AXIS, Axis.Z)); - } - } - super.neighborChanged(state, level, pos, block, fromPos, isMoving); - } - - private TriState isOtherRailInAxis(Level level, BlockPos pos, Axis axis, int relative) { - BlockState other = level.getBlockState(pos.relative(axis, relative)); - Axis otherAxis; - if (other.getBlock() instanceof SlidingRailBlock) { - otherAxis = other.getValue(AXIS); - } else if (other.getBlock() instanceof PoweredSlidingRailBlock) { - otherAxis = other.getValue(PoweredSlidingRailBlock.FACING).getAxis(); - } else if (other.getBlock() instanceof ActivatorSlidingRailBlock) { - otherAxis = other.getValue(ActivatorSlidingRailBlock.FACING).getAxis(); - } else if (other.getBlock() instanceof DetectorSlidingRailBlock) { - otherAxis = other.getValue(DetectorSlidingRailBlock.FACING).getAxis(); - } else { - return TriState.DEFAULT; - } - return axis == otherAxis || otherAxis == Axis.Y ? TriState.TRUE : TriState.FALSE; - } - - @Override - public boolean change(Player player, BlockPos blockPos, Level level, ItemStack anvilHammer) { - BlockState bs = level.getBlockState(blockPos); - level.setBlockAndUpdate(blockPos, bs.cycle(AXIS)); - return true; - } - - @Override - public @Nullable Property getChangeableProperty(BlockState blockState) { - return AXIS; - } - - @Override - public void onSlidingAbove(Level level, BlockPos pos, BlockState state, SlidingBlockEntity entity) { - } - - @Override - protected BlockState rotate(BlockState state, Rotation rotation) { - return RotatedPillarBlock.rotatePillar(state, rotation); - } - -} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/sliding/package-info.java deleted file mode 100644 index eef4848d16..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -package dev.dubhe.anvilcraft.block.sliding; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BlackHoleBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/special/BlackHoleBlock.java similarity index 81% rename from src/main/java/dev/dubhe/anvilcraft/block/BlackHoleBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/special/BlackHoleBlock.java index 7c290e8201..cb71c6558e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/BlackHoleBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/special/BlackHoleBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.special; import dev.dubhe.anvilcraft.block.entity.BlackHoleBlockEntity; import net.minecraft.core.BlockPos; @@ -10,11 +10,15 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class BlackHoleBlock extends Block implements EntityBlock { public static final VoxelShape MODEL = Block.box(4, 4, 4, 12, 12, 12); + public BlackHoleBlock(Properties properties) { + super(properties.forceSolidOn()); + } + @Override public VoxelShape getShape(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, CollisionContext collisionContext) { return MODEL; @@ -25,21 +29,6 @@ public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldS super.onPlace(state, level, pos, oldState, movedByPiston); } - @Override - public void neighborChanged( - BlockState state, - Level level, - BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston - ) { - } - - public BlackHoleBlock(Properties properties) { - super(properties.forceSolidOn()); - } - @Nullable @Override public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/special/PlasmaJetsBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/special/PlasmaJetsBlock.java new file mode 100644 index 0000000000..ad57930ddb --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/special/PlasmaJetsBlock.java @@ -0,0 +1,90 @@ +package dev.dubhe.anvilcraft.block.special; + +import com.mojang.serialization.MapCodec; +import dev.anvilcraft.lib.v2.recipe.cache.BlockCache; +import dev.dubhe.anvilcraft.api.block.IIgnitableCauldron; +import dev.dubhe.anvilcraft.block.entity.PlasmaJetsBlockEntity; +import dev.dubhe.anvilcraft.block.power.consumer.HeaterBlock; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; +import dev.dubhe.anvilcraft.init.block.ModBlocks; +import dev.dubhe.anvilcraft.init.block.ModFluidTags; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.jspecify.annotations.Nullable; + +public class PlasmaJetsBlock extends BaseEntityBlock { + public PlasmaJetsBlock(Properties properties) { + super(properties); + } + + @Override + protected MapCodec codec() { + return simpleCodec(PlasmaJetsBlock::new); + } + + public static boolean trySpawn(BlockPos pos, Level level) { + BlockState heater = level.getBlockState(pos.below().below()); + if ( + !PlasmaJetsBlock.isIgnitedOilCauldron(level, pos.below()) + || !heater.is(ModBlocks.HEATER) + || heater.getValue(HeaterBlock.OVERLOAD) + ) { + return false; + } + for (int i = 0; i < 8; i++) { + if (!level.getBlockState(pos.above(i)).isAir()) { + return false; + } + } + for (Direction direction : Direction.values()) { + if (!direction.getAxis().isHorizontal()) { + continue; + } + if (!level.getBlockState(pos.relative(direction)).isFaceSturdy(level, pos.relative(direction), direction.getOpposite())) { + return false; + } + } + level.setBlock(pos, ModBlocks.PLASMA_JETS.getDefaultState(), 3); + return true; + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return Shapes.empty(); + } + + @Override + public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + return createTickerHelper(type, ModBlockEntities.PLASMA_JETS.get(), PlasmaJetsBlockEntity::tick); + } + + @Override + public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return ModBlockEntities.PLASMA_JETS.create(pos, state); + } + + @SuppressWarnings("deprecation") + public static boolean isIgnitedOilCauldron(Level level, BlockPos pos) { + BlockCache cache = new BlockCache(level); + if (!(cache.getBlockState(pos).getBlock() instanceof IIgnitableCauldron cauldron)) return false; + return cauldron.isIgnited(cache, pos) && cauldron.getFluid(cache, pos).is(ModFluidTags.OIL); + } + + public static boolean tryConsumeOnce(Level level, BlockPos pos) { + BlockCache cache = new BlockCache(level); + if (!(cache.getBlockState(pos).getBlock() instanceof IIgnitableCauldron cauldron)) return false; + if (!cauldron.consumeOnce(cache, pos)) return false; + cache.accept(); + return true; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/WhiteHoleBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/special/WhiteHoleBlock.java similarity index 86% rename from src/main/java/dev/dubhe/anvilcraft/block/WhiteHoleBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/special/WhiteHoleBlock.java index 5f56203162..2851a798b8 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/WhiteHoleBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/special/WhiteHoleBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.special; import dev.dubhe.anvilcraft.block.entity.WhiteHoleBlockEntity; import net.minecraft.core.BlockPos; @@ -8,9 +8,10 @@ import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class WhiteHoleBlock extends Block implements EntityBlock { public static final VoxelShape MODEL = Block.box(4, 4, 4, 12, 12, 12); @@ -26,12 +27,12 @@ public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldS } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston ) { } @@ -45,4 +46,4 @@ public WhiteHoleBlock(Properties properties) { public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { return new WhiteHoleBlockEntity(pos, state); } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/special/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/special/package-info.java new file mode 100644 index 0000000000..1bc16d519b --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/special/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.special; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/state/Color.java b/src/main/java/dev/dubhe/anvilcraft/block/state/Color.java index 6e3d244cbd..575ccde30d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/state/Color.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/state/Color.java @@ -4,39 +4,44 @@ import lombok.Getter; import lombok.experimental.Accessors; import net.minecraft.util.StringRepresentable; +import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; @Accessors(fluent = true) public enum Color implements StringRepresentable { - WHITE("white", Items.WHITE_DYE), - LIGHT_GRAY("light_gray", Items.LIGHT_GRAY_DYE), - GRAY("gray", Items.GRAY_DYE), - BLACK("black", Items.BLACK_DYE), - BROWN("brown", Items.BROWN_DYE), - RED("red", Items.RED_DYE), - ORANGE("orange", Items.ORANGE_DYE), - YELLOW("yellow", Items.YELLOW_DYE), - LIME("lime", Items.LIME_DYE), - GREEN("green", Items.GREEN_DYE), - CYAN("cyan", Items.CYAN_DYE), - LIGHT_BLUE("light_blue", Items.LIGHT_BLUE_DYE), - BLUE("blue", Items.BLUE_DYE), - PURPLE("purple", Items.PURPLE_DYE), - MAGENTA("magenta", Items.MAGENTA_DYE), - PINK("pink", Items.PINK_DYE); + WHITE("white", Items.WHITE_DYE, DyeColor.WHITE), + LIGHT_GRAY("light_gray", Items.LIGHT_GRAY_DYE, DyeColor.LIGHT_GRAY), + GRAY("gray", Items.GRAY_DYE, DyeColor.GRAY), + BLACK("black", Items.BLACK_DYE, DyeColor.BLACK), + BROWN("brown", Items.BROWN_DYE, DyeColor.BROWN), + RED("red", Items.RED_DYE, DyeColor.RED), + ORANGE("orange", Items.ORANGE_DYE, DyeColor.ORANGE), + YELLOW("yellow", Items.YELLOW_DYE, DyeColor.YELLOW), + LIME("lime", Items.LIME_DYE, DyeColor.LIME), + GREEN("green", Items.GREEN_DYE, DyeColor.GREEN), + CYAN("cyan", Items.CYAN_DYE, DyeColor.CYAN), + LIGHT_BLUE("light_blue", Items.LIGHT_BLUE_DYE, DyeColor.LIGHT_BLUE), + BLUE("blue", Items.BLUE_DYE, DyeColor.BLUE), + PURPLE("purple", Items.PURPLE_DYE, DyeColor.PURPLE), + MAGENTA("magenta", Items.MAGENTA_DYE, DyeColor.MAGENTA), + PINK("pink", Items.PINK_DYE, DyeColor.PINK); private final String name; @Getter private final Item dyeItem; + @Getter + private final DyeColor color; + public static final Codec CODEC = StringRepresentable.fromValues(Color::values); - Color(String name, Item dyeItem) { + Color(String name, Item dyeItem, DyeColor color) { this.name = name; this.dyeItem = dyeItem; + this.color = color; } public String toString() { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/state/Cube323PartHalf.java b/src/main/java/dev/dubhe/anvilcraft/block/state/Cube323PartHalf.java index 41f132333e..836242b1e8 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/state/Cube323PartHalf.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/state/Cube323PartHalf.java @@ -3,7 +3,7 @@ import lombok.Getter; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/state/Cube3x3PartHalf.java b/src/main/java/dev/dubhe/anvilcraft/block/state/Cube3x3PartHalf.java index 0df24b3088..9241ae8443 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/state/Cube3x3PartHalf.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/state/Cube3x3PartHalf.java @@ -3,7 +3,7 @@ import lombok.Getter; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube232PartHalf.java b/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube232PartHalf.java index 409780a8df..6008e734e1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube232PartHalf.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube232PartHalf.java @@ -4,7 +4,7 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube3x3PartHalf.java b/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube3x3PartHalf.java index be44a180b8..c208569e49 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube3x3PartHalf.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/state/DirectionCube3x3PartHalf.java @@ -4,7 +4,7 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; @@ -90,17 +90,17 @@ public String getSerializedName() { @Override public int getOffsetX(Direction value) { - return offsetX; + return this.offsetX; } @Override public int getOffsetY(Direction value) { - return offsetY; + return this.offsetY; } @Override public int getOffsetZ(Direction value) { - return offsetZ; + return this.offsetZ; } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/state/OpenedCube3x3PartHalf.java b/src/main/java/dev/dubhe/anvilcraft/block/state/OpenedCube3x3PartHalf.java index 9b32a6a5b9..1e2ba5a525 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/state/OpenedCube3x3PartHalf.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/state/OpenedCube3x3PartHalf.java @@ -4,7 +4,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Arrays; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/state/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/state/package-info.java index 00b5f87d86..f55bf37893 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/state/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/state/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.block.state; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/AmberBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/AmberBlock.java similarity index 82% rename from src/main/java/dev/dubhe/anvilcraft/block/AmberBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/AmberBlock.java index 53bce049bc..0b1baa6a33 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/AmberBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/AmberBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import com.mojang.serialization.MapCodec; import net.minecraft.core.Direction; @@ -7,11 +7,11 @@ import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.DirectionProperty; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.jspecify.annotations.Nullable; public class AmberBlock extends HorizontalDirectionalBlock { - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; public AmberBlock(Properties properties) { super(properties); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/storage/EndDustBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/EndDustBlock.java new file mode 100644 index 0000000000..2773be0cc8 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/EndDustBlock.java @@ -0,0 +1,63 @@ +package dev.dubhe.anvilcraft.block.storage; + +import dev.dubhe.anvilcraft.entity.FloatingBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.FluidTags; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.redstone.Orientation; +import org.jspecify.annotations.Nullable; + +public class EndDustBlock extends Block { + public EndDustBlock(Properties properties) { + super(properties); + } + + @Override + public void onPlace( + BlockState state, + Level level, + BlockPos pos, + BlockState oldState, + boolean movedByPiston + ) { + level.scheduleTick(pos, this, this.getDelayAfterPlace()); + } + + @Override + public void tick( + BlockState state, + ServerLevel level, + BlockPos pos, + RandomSource random + ) { + if (!level.getFluidState(pos.above()).is(FluidTags.WATER)) return; + if (!FallingBlock.isFree(level.getBlockState(pos.above()))) return; + FloatingBlockEntity._float(level, pos, state); + } + + @Override + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block neighborBlock, + @Nullable Orientation orientation, + boolean movedByPiston + ) { + for (net.minecraft.core.Direction dir : net.minecraft.core.Direction.values()) { + if (level.getFluidState(pos.relative(dir)).is(FluidTags.WATER)) { + level.scheduleTick(pos, this, this.getDelayAfterPlace()); + return; + } + } + } + + protected int getDelayAfterPlace() { + return 2; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FerriteCoreMagnetBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/FerriteCoreMagnetBlock.java similarity index 96% rename from src/main/java/dev/dubhe/anvilcraft/block/FerriteCoreMagnetBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/FerriteCoreMagnetBlock.java index fa0ae8f509..441c89a3b6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FerriteCoreMagnetBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/FerriteCoreMagnetBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.dubhe.anvilcraft.init.block.ModBlocks; import net.minecraft.core.BlockPos; @@ -50,7 +50,7 @@ protected InteractionResult useWithoutItem(BlockState state, Level level, BlockP blockState = blockState.setValue(LIT, level.hasNeighborSignal(pos)); } level.setBlockAndUpdate(pos, blockState); - level.playSound(null, pos, SoundEvents.ITEM_FRAME_REMOVE_ITEM, SoundSource.BLOCKS, 1.0f, 1.0f); + level.playSound(null, pos, SoundEvents.ITEM_FRAME_REMOVE_ITEM, SoundSource.BLOCKS, 1.0F, 1.0F); return InteractionResult.SUCCESS; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FlintBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/FlintBlock.java similarity index 89% rename from src/main/java/dev/dubhe/anvilcraft/block/FlintBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/FlintBlock.java index 16bf3ea06a..8615638cf7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FlintBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/FlintBlock.java @@ -1,8 +1,10 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; +import dev.dubhe.anvilcraft.block.cauldron.OilCauldronBlock; import dev.dubhe.anvilcraft.init.block.ModBlocks; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.BaseFireBlock; @@ -43,7 +45,7 @@ public static void ignite(LevelAccessor level, BlockPos pos, boolean isFlint) { BlockPos offset = pos.offset(x, y, z); BlockState blockState = level.getBlockState(offset); if (blockState.is(ModBlocks.OIL_CAULDRON)) { - OilCauldronBlock.ignite(level, offset, blockState); + OilCauldronBlock.ignite(level, offset); return; } else if (blockState.getBlock() instanceof CampfireBlock) { if (!blockState.getValue(CampfireBlock.LIT)) { @@ -77,8 +79,8 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - super.onRemove(state, level, pos, newState, movedByPiston); + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); if (movedByPiston) { ignite(level, pos, true); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/storage/GunpowderBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/GunpowderBlock.java new file mode 100644 index 0000000000..e49960b933 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/GunpowderBlock.java @@ -0,0 +1,173 @@ +package dev.dubhe.anvilcraft.block.storage; + +import dev.dubhe.anvilcraft.block.heatable.HeatableBlock; +import dev.dubhe.anvilcraft.block.heatable.NormalBlock; +import dev.dubhe.anvilcraft.item.tool.MultitoolItem; +import dev.dubhe.anvilcraft.item.tool.MultitoolMode; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.stats.Stats; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.projectile.Projectile; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Explosion; +import net.minecraft.world.level.ExplosionDamageCalculator; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; +import net.minecraft.world.level.block.BaseFireBlock; +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.material.FluidState; +import net.minecraft.world.phys.BlockHitResult; +import org.jspecify.annotations.Nullable; + +import java.util.Optional; + +public class GunpowderBlock extends Block { + public GunpowderBlock(Properties properties) { + super(properties); + } + + public void explosion(Level level, BlockPos pos) { + if (level.isClientSide()) { + return; + } + level.setBlock(pos, Blocks.AIR.defaultBlockState(), 11); + level.explode(null, + null, + new ExplosionDamageCalculator() { + @Override + public Optional getBlockExplosionResistance( + Explosion explosion, + BlockGetter reader, + BlockPos pos, + BlockState state, + FluidState fluid + ) { + return Optional.of(Float.MAX_VALUE); + } + + @Override + public boolean shouldDamageEntity(Explosion explosion, Entity entity) { + return false; + } + }, + pos.getX(), + pos.getY(), + pos.getZ(), + 4.0F, + false, + Level.ExplosionInteraction.BLOCK); + } + + @Override + protected InteractionResult useItemOn( + ItemStack stack, + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hitResult + ) { + if ( + stack.is(Items.FLINT_AND_STEEL) + || stack.is(Items.FIRE_CHARGE) + || MultitoolItem.isActingAs(stack, MultitoolMode.FLINT_AND_STEEL) + ) { + this.explosion(level, pos); + Item item = stack.getItem(); + if ( + stack.is(Items.FLINT_AND_STEEL) + || MultitoolItem.isActingAs(stack, MultitoolMode.FLINT_AND_STEEL) + ) { + stack.hurtAndBreak(1, player, hand); + } else { + stack.consume(1, player); + } + player.awardStat(Stats.ITEM_USED.get(item)); + return InteractionResult.SUCCESS; + } + return super.useItemOn(stack, state, level, pos, player, hand, hitResult); + } + + @Override + protected BlockState updateShape( + BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, + Direction direction, + BlockPos neighborPos, + BlockState neighborState, + RandomSource random + ) { + if (level instanceof Level actualLevel && !actualLevel.isClientSide()) { + BlockState block = level.getBlockState(pos.relative(direction)); + if (block.getBlock() instanceof BaseFireBlock + || block.is(Blocks.LAVA) + || ((block.getBlock() instanceof HeatableBlock) && !(block.getBlock() instanceof NormalBlock))) { + this.explosion(actualLevel, pos); + } + } + return super.updateShape(state, level, ticks, pos, direction, neighborPos, neighborState, random); + } + + @Override + protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { + if (!level.isClientSide()) { + for (Direction direction : Direction.values()) { + BlockState block = level.getBlockState(pos.relative(direction)); + if (block.getBlock() instanceof BaseFireBlock + || block.is(Blocks.LAVA) + || ((block.getBlock() instanceof HeatableBlock) && !(block.getBlock() instanceof NormalBlock))) { + this.explosion(level, pos); + } + } + } + } + + @Override + public boolean onCaughtFire( + BlockState state, + Level level, + BlockPos pos, + @Nullable Direction direction, + @Nullable LivingEntity igniter + ) { + this.explosion(level, pos); + return super.onCaughtFire(state, level, pos, direction, igniter); + } + + @Override + protected void onProjectileHit(Level level, BlockState state, BlockHitResult hit, Projectile projectile) { + if (level.isClientSide()) { + return; + } + BlockPos pos = hit.getBlockPos(); + if (projectile.isOnFire() && projectile.mayInteract((ServerLevel) level, pos)) { + this.explosion(level, pos); + } + } + + @Override + public void wasExploded(ServerLevel level, BlockPos pos, Explosion explosion) { + this.explosion(level, pos); + } + + @Override + public boolean canDropFromExplosion(BlockState state, BlockGetter level, BlockPos pos, Explosion explosion) { + return false; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HasMobBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/HasMobBlock.java similarity index 90% rename from src/main/java/dev/dubhe/anvilcraft/block/HasMobBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/HasMobBlock.java index a6e2a3a538..0afdf4fa5e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HasMobBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/HasMobBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.RenderShape; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/HollowMagnetBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/HollowMagnetBlock.java similarity index 81% rename from src/main/java/dev/dubhe/anvilcraft/block/HollowMagnetBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/HollowMagnetBlock.java index c45725d718..162920fd43 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/HollowMagnetBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/HollowMagnetBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -8,9 +8,11 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; 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.InsideBlockEffectApplier; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -18,7 +20,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.SimpleWaterloggedBlock; import net.minecraft.world.level.block.state.BlockState; @@ -91,34 +94,43 @@ public FluidState getFluidState(BlockState blockState) { } @Override - public BlockState updateShape( + protected BlockState updateShape( BlockState blockState, + LevelReader levelReader, + ScheduledTickAccess ticks, + BlockPos blockPos, Direction direction, + BlockPos blockPos2, BlockState blockState2, - LevelAccessor levelAccessor, - BlockPos blockPos, - BlockPos blockPos2 + RandomSource random ) { if (blockState.getValue(WATERLOGGED)) { - levelAccessor.scheduleTick(blockPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelAccessor)); + ticks.scheduleTick(blockPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelReader)); } - return super.updateShape(blockState, direction, blockState2, levelAccessor, blockPos, blockPos2); + return super.updateShape(blockState, levelReader, ticks, blockPos, direction, blockPos2, blockState2, random); } @Override - protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { - if (level.isClientSide) { + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + if (level.isClientSide()) { return; } if (state.getValue(LIT)) { return; } - if (entity instanceof ItemEntity itemEntity && !itemEntity.getTags().contains(TAG)) { + if (entity instanceof ItemEntity itemEntity /*&& !itemEntity.getItem().tags().anyMatch(it -> it.equals(TAG))*/) { ItemStack item = itemEntity.getItem(); if (item.is(Items.IRON_INGOT) && item.getCount() == 1) { if (itemEntity.getOwner() instanceof ServerPlayer) { itemEntity.addTag(TAG); - if (level.random.nextDouble() <= 0.005) { + if (level.getRandom().nextDouble() <= 0.005) { itemEntity.setItem(new ItemStack(ModItems.MAGNET_INGOT.get())); } } @@ -127,7 +139,7 @@ protected void entityInside(BlockState state, Level level, BlockPos pos, Entity } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -144,8 +156,8 @@ protected ItemInteractionResult useItemOn( blockState = blockState.setValue(LIT, level.hasNeighborSignal(pos)); } level.setBlockAndUpdate(pos, blockState); - level.playSound(null, pos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 1.0f, 1.0f); - return ItemInteractionResult.SUCCESS; + level.playSound(null, pos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 1.0F, 1.0F); + return InteractionResult.SUCCESS; } else if (stack.is(ModItems.MAGNET_INGOT)) { stack.consume(1, player); BlockState blockState = ModBlocks.MAGNET_BLOCK.get().defaultBlockState(); @@ -153,8 +165,8 @@ protected ItemInteractionResult useItemOn( blockState = blockState.setValue(LIT, level.hasNeighborSignal(pos)); } level.setBlockAndUpdate(pos, blockState); - level.playSound(null, pos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 1.0f, 1.0f); - return ItemInteractionResult.SUCCESS; + level.playSound(null, pos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 1.0F, 1.0F); + return InteractionResult.SUCCESS; } } return super.useItemOn(stack, state, level, pos, player, hand, hitResult); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/storage/LevitationPowderBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/LevitationPowderBlock.java new file mode 100644 index 0000000000..2dcb2d17d3 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/LevitationPowderBlock.java @@ -0,0 +1,63 @@ +package dev.dubhe.anvilcraft.block.storage; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.entity.LevitatingBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.item.FallingBlockEntity; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Fallable; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.redstone.Orientation; +import org.jspecify.annotations.Nullable; + +public class LevitationPowderBlock extends FallingBlock { + public LevitationPowderBlock(Properties properties) { + super(properties); + } + + @Override + protected MapCodec codec() { + return null; + } + + @Override + protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + super.tick(state, level, pos, random); + // 和上方重力方块交换位置 + BlockState above = level.getBlockState(pos.above()); + if (above.getBlock() instanceof FallingBlock && !(above.getBlock() instanceof LevitationPowderBlock)) { + if (above.getBlock() instanceof Fallable) { + FallingBlockEntity.fall(level, pos.above(), above); + } + LevitatingBlockEntity.levitate(level, pos, state); + } + } + + @Override + public int getDustColor(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) { + // color of sand + return 14406560; + } + + @Override + protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { + level.scheduleTick(pos, this, 2); + } + + @Override + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { + level.scheduleTick(pos, this, 2); + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/MagnetBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/MagnetBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/MagnetBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/MagnetBlock.java index 4f42ec42d2..4a9c03e191 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/MagnetBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/MagnetBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -25,9 +25,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.redstone.Orientation; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; @@ -64,15 +65,15 @@ protected void createBlockStateDefinition(StateDefinition.Builder FACING = BlockStateProperties.HORIZONTAL_FACING; public MobAmberBlock(Properties properties) { super(properties); @@ -45,6 +44,7 @@ protected BlockState rotate(BlockState state, Rotation rot) { } @Override + @SuppressWarnings("deprecation") protected BlockState mirror(BlockState state, Mirror mirror) { return state.rotate(mirror.getRotation(state.getValue(FACING))); } @@ -65,14 +65,17 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Nullable @Override public BlockEntityTicker getTicker( - Level level, BlockState state, BlockEntityType type) { - if (!level.isClientSide) { + Level level, + BlockState state, + BlockEntityType type + ) { + if (!level.isClientSide()) { return null; } return createTickerHelper( type, ModBlockEntities.MOB_AMBER_BLOCK.get(), - (level1, blockPos, blockState, blockEntity) -> blockEntity.clientTick((ClientLevel) level1, blockPos) + (level1, blockPos, _, blockEntity) -> blockEntity.clientTick(level1, blockPos) ); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/NegativeMatterBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/NegativeMatterBlock.java similarity index 86% rename from src/main/java/dev/dubhe/anvilcraft/block/NegativeMatterBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/NegativeMatterBlock.java index 449ea141a7..9c857efaa7 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/NegativeMatterBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/NegativeMatterBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.dubhe.anvilcraft.api.block.INegativeMatterBlock; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ResentfulAmberBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/ResentfulAmberBlock.java similarity index 78% rename from src/main/java/dev/dubhe/anvilcraft/block/ResentfulAmberBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/ResentfulAmberBlock.java index 1a0826c85a..2e46583acb 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ResentfulAmberBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/ResentfulAmberBlock.java @@ -1,14 +1,13 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; -import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class ResentfulAmberBlock extends MobAmberBlock { public ResentfulAmberBlock(Properties properties) { @@ -25,13 +24,13 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (!level.isClientSide) { + if (!level.isClientSide()) { return null; } return createTickerHelper( type, ModBlockEntities.RESENTFUL_AMBER_BLOCK.get(), - (level1, blockPos, blockState, blockEntity) -> blockEntity.clientTick((ClientLevel) level1, blockPos) + (level1, blockPos, _, blockEntity) -> blockEntity.clientTick(level1, blockPos) ); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ResinBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/ResinBlock.java similarity index 89% rename from src/main/java/dev/dubhe/anvilcraft/block/ResinBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/ResinBlock.java index c78552d89a..74ee48ce61 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ResinBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/ResinBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; @@ -23,12 +23,14 @@ public void fallOn(Level level, BlockState state, BlockPos pos, Entity entity, f } } - public void updateEntityAfterFallOn(BlockGetter level, Entity entity) { + @Override + public void updateEntityMovementAfterFallOn(BlockGetter level, Entity entity) { if (entity.isSuppressingBounce()) { - super.updateEntityAfterFallOn(level, entity); + super.updateEntityMovementAfterFallOn(level, entity); } else { this.bounceUp(entity); } + } private void bounceUp(Entity entity) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/RottenFleshBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/RottenFleshBlock.java similarity index 81% rename from src/main/java/dev/dubhe/anvilcraft/block/RottenFleshBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/RottenFleshBlock.java index 0664b7fd5a..416a15b0d6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/RottenFleshBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/RottenFleshBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import net.minecraft.core.BlockPos; import net.minecraft.world.effect.MobEffectInstance; @@ -15,10 +15,10 @@ public RottenFleshBlock(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(fallDistance, 0.2F, level.damageSources().fall()); if (entity instanceof LivingEntity livingEntity) { - livingEntity.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 30 * 20)); + livingEntity.addEffect(new MobEffectInstance(MobEffects.NAUSEA, 30 * 20)); } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/SimpleConfinementAnvilonBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/SimpleConfinementAnvilonBlock.java similarity index 88% rename from src/main/java/dev/dubhe/anvilcraft/block/SimpleConfinementAnvilonBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/SimpleConfinementAnvilonBlock.java index dea705cdae..b4cf285ec8 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/SimpleConfinementAnvilonBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/SimpleConfinementAnvilonBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/SugarBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/SugarBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/SugarBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/SugarBlock.java index 884b125551..a97aeab128 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/SugarBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/SugarBlock.java @@ -1,9 +1,9 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.anvilcraft.lib.v2.registrum.providers.loot.RegistrumBlockLootTables; import dev.dubhe.anvilcraft.api.chargecollector.ChargeCollectorManager; import dev.dubhe.anvilcraft.block.state.FragmentationDegree; -import net.minecraft.advancements.critereon.StatePropertiesPredicate; +import net.minecraft.advancements.criterion.StatePropertiesPredicate; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; @@ -20,7 +20,7 @@ import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction; import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class SugarBlock extends Block { public static final EnumProperty FRAGMENTATION_DEGREE = EnumProperty.create( @@ -36,7 +36,7 @@ public SugarBlock(Properties properties) { public static void loot(RegistrumBlockLootTables tables, Block block) { tables.add(block, LootTable.lootTable() .withPool(LootPool.lootPool() - .setRolls(ConstantValue.exactly(1.0f)) + .setRolls(ConstantValue.exactly(1.0F)) .add(LootItem.lootTableItem(block) .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block) .setProperties(StatePropertiesPredicate.Builder.properties() @@ -50,7 +50,7 @@ public static void loot(RegistrumBlockLootTables tables, Block block) { .setProperties(StatePropertiesPredicate.Builder.properties() .hasProperty(SugarBlock.FRAGMENTATION_DEGREE, FragmentationDegree.TWO)))) .otherwise(tables.applyExplosionCondition(block, LootItem.lootTableItem(Items.SUGAR) - .apply(SetItemCountFunction.setCount(ConstantValue.exactly(9.0f))) + .apply(SetItemCountFunction.setCount(ConstantValue.exactly(9.0F))) .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block) .setProperties(StatePropertiesPredicate.Builder.properties() .hasProperty(SugarBlock.FRAGMENTATION_DEGREE, FragmentationDegree.THREE))))) @@ -65,7 +65,7 @@ public void onHit(Level level, BlockPos pos) { @Override protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { double chance = random.nextDouble(); - if (!level.isClientSide) { + if (!level.isClientSide()) { if (state.getValue(FRAGMENTATION_DEGREE) != FragmentationDegree.THREE) { if (chance <= 0.05) { level.setBlockAndUpdate(pos, state.setValue(FRAGMENTATION_DEGREE, state.getValue(FRAGMENTATION_DEGREE).next())); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/TranscendiumBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/TranscendiumBlock.java similarity index 86% rename from src/main/java/dev/dubhe/anvilcraft/block/TranscendiumBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/storage/TranscendiumBlock.java index 2f55024040..04bc9cc009 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/TranscendiumBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/TranscendiumBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.storage; import dev.dubhe.anvilcraft.api.block.ITranscendiumBlock; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/storage/VoidMatterBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/VoidMatterBlock.java new file mode 100644 index 0000000000..92f53ae3ab --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/VoidMatterBlock.java @@ -0,0 +1,48 @@ +package dev.dubhe.anvilcraft.block.storage; + +import dev.dubhe.anvilcraft.init.block.ModBlockTags; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; + +public class VoidMatterBlock extends Block { + public static final int VOID_DECAY_THRESHOLD = 5; + + public VoidMatterBlock(Properties properties) { + super(properties.randomTicks()); + } + + public static BlockState voidDecay(Level level, BlockPos pos, BlockState state, RandomSource random) { + Iterable> tagOrEmpty = level.registryAccess().lookupOrThrow(Registries.BLOCK) + .getTagOrEmpty(ModBlockTags.VOID_DECAY_PRODUCTS); + int count = 0; + Block randomBlock = null; + for (Holder blockHolder : tagOrEmpty) { + count++; + if (level.getRandom().nextInt(count) == 0) { + randomBlock = blockHolder.value(); + } + } + if (randomBlock == null) return Blocks.AIR.defaultBlockState(); + return randomBlock.defaultBlockState(); + } + + @Override + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + long neighborVoidMatterCount = Direction.stream() + .map(d -> level.getBlockState(pos.relative(d))) + .filter(b -> b.getBlock() instanceof VoidMatterBlock) + .count(); + if (neighborVoidMatterCount >= VOID_DECAY_THRESHOLD) { + level.setBlockAndUpdate(pos, voidDecay(level, pos, state, random)); + } + } + +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/storage/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/storage/package-info.java new file mode 100644 index 0000000000..5aa083ad9e --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/storage/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.storage; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ActiveSilencerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/ActiveSilencerBlock.java similarity index 76% rename from src/main/java/dev/dubhe/anvilcraft/block/ActiveSilencerBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/ActiveSilencerBlock.java index 448ecd96ac..b3a0c7be38 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ActiveSilencerBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/ActiveSilencerBlock.java @@ -1,7 +1,7 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import com.mojang.serialization.MapCodec; -import dev.anvilcraft.lib.v2.util.Util; +import dev.anvilcraft.lib.v2.util.ShapeUtil; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.entity.ActiveSilencerBlockEntity; import dev.dubhe.anvilcraft.init.ModMenuTypes; @@ -12,10 +12,10 @@ import net.minecraft.server.level.ServerPlayer; 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.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.GameType; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BaseEntityBlock; @@ -26,9 +26,13 @@ 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.redstone.Orientation; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.network.PacketDistributor; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; @@ -66,15 +70,15 @@ protected void neighborChanged( BlockState state, Level level, BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, + Block block, + @Nullable Orientation orientation, boolean movedByPiston ) { level.setBlockAndUpdate(pos, state.setValue(POWERED, level.hasNeighborSignal(pos))); } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -83,22 +87,19 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - if (level.isClientSide) return ItemInteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; if (player instanceof ServerPlayer serverPlayer) { BlockEntity be = level.getBlockEntity(pos); if (be instanceof ActiveSilencerBlockEntity asbe && player.getItemInHand(hand).is(ModItems.DISK.get()) ) { - return Util.interactionResultConverter() - .apply( - asbe.useDisk( - level, - serverPlayer, - hand, - serverPlayer.getItemInHand(hand), - hitResult - ) - ); + return asbe.useDisk( + level, + serverPlayer, + hand, + serverPlayer.getItemInHand(hand), + hitResult + ); } } return super.useItemOn(stack, state, level, pos, player, hand, hitResult); @@ -112,21 +113,35 @@ protected InteractionResult useWithoutItem( Player player, BlockHitResult hitResult ) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } BlockEntity be = level.getBlockEntity(pos); if (be instanceof ActiveSilencerBlockEntity asbe && player instanceof ServerPlayer sp) { if (sp.gameMode.getGameModeForPlayer() == GameType.SPECTATOR) return InteractionResult.PASS; ModMenuTypes.open(sp, asbe, pos); - PacketDistributor.sendToPlayer(sp, new MutedSoundSyncPacket(new ArrayList<>(asbe.getMutedSound()))); + PacketDistributor.sendToPlayer(sp, new MutedSoundSyncPacket(new ArrayList<>(asbe.getMuting()))); return InteractionResult.SUCCESS; } return InteractionResult.FAIL; } + // Shapes + @Override public RenderShape getRenderShape(BlockState state) { return RenderShape.MODEL; } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return ActiveSilencerBlock.SHAPE; + } + + public static final VoxelShape SHAPE = ShapeUtil.merge( + new AABB(0, 0, 0, 16, 8, 16), + new AABB(6, 8, 0, 10, 12, 16), + new AABB(0, 8, 6, 16, 12, 10), + new AABB(2, 8, 2, 14, 16, 14) + ); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ArrowBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/ArrowBlock.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/block/ArrowBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/ArrowBlock.java index 17938e3528..7a5f3aa28a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ArrowBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/ArrowBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BlockDevourerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/BlockDevourerBlock.java similarity index 87% rename from src/main/java/dev/dubhe/anvilcraft/block/BlockDevourerBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/BlockDevourerBlock.java index c391738d30..3dfae35c3f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/BlockDevourerBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/BlockDevourerBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import com.google.common.collect.Streams; import com.mojang.serialization.MapCodec; @@ -7,6 +7,10 @@ import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.api.itemhandler.ItemHandlerUtil; +import dev.dubhe.anvilcraft.block.workstation.TranscendenceAnvilBlock; +import dev.dubhe.anvilcraft.block.workstation.ember.EmberAnvilBlock; +import dev.dubhe.anvilcraft.block.workstation.frost.FrostAnvilBlock; +import dev.dubhe.anvilcraft.block.workstation.royal.RoyalAnvilBlock; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.util.AnvilUtil; import dev.dubhe.anvilcraft.util.BreakBlockUtil; @@ -35,16 +39,18 @@ 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.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.capabilities.Capabilities; -import net.neoforged.neoforge.items.IItemHandler; -import net.neoforged.neoforge.items.ItemHandlerHelper; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.ItemUtil; +import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -57,7 +63,7 @@ public class BlockDevourerBlock extends DirectionalBlock implements HammerRotate public static final VoxelShape EAST_SHAPE = Block.box(0, 0, 0, 8, 16, 16); public static final VoxelShape UP_SHAPE = Block.box(0, 0, 0, 16, 8, 16); public static final VoxelShape DOWN_SHAPE = Block.box(0, 8, 0, 16, 16, 16); - public static final DirectionProperty FACING = BlockStateProperties.FACING; + public static final EnumProperty FACING = BlockStateProperties.FACING; public static final BooleanProperty TRIGGERED = BlockStateProperties.TRIGGERED; public BlockDevourerBlock(Properties properties) { @@ -102,8 +108,8 @@ protected void onPlace( BlockState oldState, boolean movedByPiston ) { - if (!level.isClientSide) { - checkIfTriggered(level, state, pos); + if (!level.isClientSide()) { + this.checkIfTriggered(level, state, pos); } } @@ -122,16 +128,16 @@ public void tick( } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, + Block block, + @Nullable Orientation orientation, boolean movedByPiston ) { - if (!level.isClientSide) { - checkIfTriggered(level, state, pos); + if (!level.isClientSide()) { + this.checkIfTriggered(level, state, pos); } } @@ -141,7 +147,7 @@ private void checkIfTriggered(Level level, BlockState blockState, BlockPos block BlockState changedState = blockState.setValue(TRIGGERED, !bl); level.setBlock(blockPos, changedState, 2); if (!bl) { - devourBlock((ServerLevel) level, blockPos, blockState.getValue(FACING), 1); + this.devourBlock((ServerLevel) level, blockPos, blockState.getValue(FACING), 1); } } } @@ -196,7 +202,7 @@ public void devourBlock( ) { BlockPos outputPos = devourerPos.relative(devourerDirection.getOpposite()); BlockPos devourCenterPos = devourerPos.relative(devourerDirection); - final List itemHandlerList = ItemHandlerUtil.getTargetItemHandlerList( + final List> itemHandlerList = ItemHandlerUtil.getTargetItemHandlerList( outputPos, devourerDirection, level @@ -264,8 +270,12 @@ public static boolean canDevour(BlockState devourBlockState) { } private static void devourSingleBlockInternalLogic( - ServerLevel level, @Nullable Block anvil, BlockPos devourBlockPos, List filteredBlockPosList, - @Nullable List itemHandlerList, Vec3 center + ServerLevel level, + @Nullable Block anvil, + BlockPos devourBlockPos, + List filteredBlockPosList, + @Nullable List> itemHandlerList, + Vec3 center ) { AABB aabb = new AABB(center.add(-0.125, -0.125, -0.125), center.add(0.125, 0.125, 0.125)); final boolean insertEnabled = itemHandlerList != null && !itemHandlerList.isEmpty(); @@ -278,7 +288,7 @@ private static void devourSingleBlockInternalLogic( if ( !(anvil instanceof FrostAnvilBlock) && devourBlockState.is(ModBlockTags.BLOCK_DEVOURER_PROBABILITY_DROPPING) - && level.random.nextDouble() > 0.05 + && level.getRandom().nextDouble() > 0.05 ) { level.destroyBlock(devourBlockPos, false); return; @@ -306,13 +316,13 @@ private static void devourSingleBlockInternalLogic( case TranscendenceAnvilBlock ignore -> BreakBlockUtil.dropFortune5(level, devourBlockPos); case null, default -> BreakBlockUtil.drop(level, devourBlockPos); }; - IItemHandler source = level.getCapability(Capabilities.ItemHandler.BLOCK, devourBlockPos, null); + ResourceHandler source = level.getCapability(Capabilities.Item.BLOCK, devourBlockPos, null); boolean skipContentTransfer = source == null; for (ItemStack itemStack : dropList) { skipContentTransfer |= ItemHandlerUtil.isEmptyContainer(itemStack); if (insertEnabled) { - for (IItemHandler target : itemHandlerList) { - itemStack = ItemHandlerHelper.insertItemStacked(target, itemStack, false); + for (ResourceHandler target : itemHandlerList) { + itemStack = ItemUtil.insertItemReturnRemaining(target, itemStack, false, null); } } if (itemStack.isEmpty() && ItemHandlerUtil.isEmptyContainer(source)) continue; @@ -349,7 +359,7 @@ private static void devourSingleBlockInternalLogic( */ private static void transferLecternContents( ServerLevel level, - @Nullable List itemHandlerList, + @Nullable List> itemHandlerList, Vec3 center, LecternBlockEntity lectern, boolean insertEnabled, @@ -358,8 +368,8 @@ private static void transferLecternContents( ItemStack bookStack = lectern.getBook(); if (insertEnabled) { assert itemHandlerList != null; - for (IItemHandler target : itemHandlerList) { - bookStack = ItemHandlerHelper.insertItem(target, bookStack, false); + for (ResourceHandler target : itemHandlerList) { + bookStack = ItemUtil.insertItemReturnRemaining(target, bookStack, false, null); lectern.setBook(bookStack); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/BlockPlacerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/BlockPlacerBlock.java similarity index 88% rename from src/main/java/dev/dubhe/anvilcraft/block/BlockPlacerBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/BlockPlacerBlock.java index 187ea9bf8e..fd5067c775 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/BlockPlacerBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/BlockPlacerBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.entity.fakeplayer.AnvilCraftFakePlayers; @@ -41,8 +41,10 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.neoforge.items.IItemHandler; -import org.jetbrains.annotations.Nullable; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.Nullable; import java.util.EnumSet; import java.util.List; @@ -95,8 +97,8 @@ protected void onPlace(BlockState state, BlockPos pos, BlockState oldState, boolean movedByPiston) { - if (!level.isClientSide) { - checkIfTriggered(level, state, pos); + if (!level.isClientSide()) { + this.checkIfTriggered(level, state, pos); } } @@ -114,15 +116,16 @@ public void tick( } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, - Block neighborBlock, - BlockPos neighborPos, - boolean movedByPiston) { - if (!level.isClientSide) { - checkIfTriggered(level, state, pos); + Block block, + net.minecraft.world.level.redstone.@Nullable Orientation orientation, + boolean movedByPiston + ) { + if (!level.isClientSide()) { + this.checkIfTriggered(level, state, pos); } } @@ -134,7 +137,7 @@ private void checkIfTriggered(Level level, BlockState blockState, BlockPos block if (triggered) { return; } - placeBlock(1, level, blockPos, blockState.getValue(ORIENTATION)); + this.placeBlock(1, level, blockPos, blockState.getValue(ORIENTATION)); } } @@ -226,19 +229,22 @@ public void placeBlock(int distance, Level level, BlockPos blockPos, Orientation // 判断是放置位置是否不能放置方块 Direction direction = orientation.getDirection(); BlockState blockState = level.getBlockState(blockPos.relative(direction, distance)); - if (canNotBePlaced(level, blockState)) { + if (this.canNotBePlaced(level, blockState)) { // 不能放置方块,方法直接结束 return; } BlockPos inputPos = blockPos.relative(direction.getOpposite()); // 获取放置方块类型 ItemStack placeItem = null; - IItemHandler itemHandler = ItemHandlerUtil.getSourceItemHandlerRecursive(this, inputPos, direction, level); + ResourceHandler itemHandler = ItemHandlerUtil.getSourceItemHandlerRecursive(this, inputPos, direction, level); int slot; - for (slot = 0; itemHandler != null && slot < itemHandler.getSlots(); slot++) { - ItemStack blockItemStack = itemHandler.extractItem(slot, 1, true); - if (!blockItemStack.isEmpty() && blockItemStack.getItem() instanceof BlockItem) { - placeItem = blockItemStack; + for (slot = 0; itemHandler != null && slot < itemHandler.size(); slot++) { + try (Transaction transaction = Transaction.openRoot()) { + ItemResource resource = itemHandler.getResource(slot); + if (resource.isEmpty() || !(resource.getItem() instanceof BlockItem)) continue; + int extracted = itemHandler.extract(slot, resource, 1, transaction); + if (extracted != 1) continue; + placeItem = resource.toStack(1); break; } } @@ -302,10 +308,17 @@ public void placeBlock(int distance, Level level, BlockPos blockPos, Orientation itemEntity.setItem(new ItemStack(Items.BUCKET, count)); } } else { - if (itemHandler.getStackInSlot(slot).is(Items.POWDER_SNOW_BUCKET)) { - itemHandler.insertItem(slot, new ItemStack(Items.BUCKET), false); + try (Transaction transaction = Transaction.openRoot()) { + ItemResource resource = itemHandler.getResource(slot); + int extracted = itemHandler.extract(slot, resource, 1, transaction); + if (extracted <= 0) return; + transaction.commit(); + if (resource.is(Items.POWDER_SNOW_BUCKET)) { + int inserted = itemHandler.insert(slot, ItemResource.of(Items.BUCKET), 1, transaction); + if (inserted <= 0) return; + transaction.commit(); + } } - itemHandler.extractItem(slot, 1, false); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ControllableSandBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/ControllableSandBlock.java similarity index 86% rename from src/main/java/dev/dubhe/anvilcraft/block/ControllableSandBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/ControllableSandBlock.java index d10bcc6c47..ac38a932a6 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ControllableSandBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/ControllableSandBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.entity.StandableFallingBlockEntity; @@ -8,6 +8,8 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.redstone.Orientation; +import org.jspecify.annotations.Nullable; public class ControllableSandBlock extends Block implements IHammerRemovable { public ControllableSandBlock(Properties properties) { @@ -21,7 +23,7 @@ protected void move(BlockState state, Level level, BlockPos pos, RandomSource ra boolean belowIsFree = StandableFallingBlockEntity.isFree(level, pos.below()); if (!aboveIsFree && !belowIsFree) return; if (aboveIsFree && belowIsFree) { - if (random.nextFloat() > 0.5f) aboveIsFree = false; + if (random.nextFloat() > 0.5F) aboveIsFree = false; else belowIsFree = false; } @@ -40,7 +42,7 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o @Override protected void neighborChanged( - BlockState state, Level level, BlockPos pos, Block neighborBlock, BlockPos neighborPos, boolean movedByPiston + BlockState state, Level level, BlockPos pos, Block neighborBlock, @Nullable Orientation orientation, boolean movedByPiston ) { if (!level.hasNeighborSignal(pos)) return; this.move(state, level, pos, level.getRandom()); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ImpactPileBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/ImpactPileBlock.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/block/ImpactPileBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/ImpactPileBlock.java index 12bf025811..c18479a43b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ImpactPileBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/ImpactPileBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -52,7 +52,7 @@ public RenderShape getRenderShape(BlockState state) { * @param blockPos 位置 */ public static void impact(Level level, BlockPos blockPos) { - int minY = level.getMinBuildHeight(); + int minY = level.getMinY(); level.destroyBlock(blockPos, false); level.destroyBlock(blockPos.above(), false); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/MengerSpongeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/MengerSpongeBlock.java similarity index 87% rename from src/main/java/dev/dubhe/anvilcraft/block/MengerSpongeBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/MengerSpongeBlock.java index 0209a8663f..898425f116 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/MengerSpongeBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/MengerSpongeBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -18,10 +18,12 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; +import org.jspecify.annotations.Nullable; import java.util.stream.Stream; @@ -73,19 +75,19 @@ private boolean removeFluidBreadthFirstSearch(Level level, BlockPos pos) { }, (checkedPos) -> { if (checkedPos.equals(pos)) { - return true; + return BlockPos.TraversalNodeStatus.ACCEPT; } BlockState blockState = level.getBlockState(checkedPos); FluidState fluidState = level.getFluidState(checkedPos); if (!fluidState.is(ModFluidTags.MENGER_SPONGE_CAN_ABSORB)) { - return false; + return BlockPos.TraversalNodeStatus.SKIP; } Block block = blockState.getBlock(); if (block instanceof BucketPickup bucketPickup) { if (!bucketPickup .pickupBlock(null, level, checkedPos, blockState) .isEmpty()) { - return true; + return BlockPos.TraversalNodeStatus.ACCEPT; } } @@ -96,7 +98,7 @@ private boolean removeFluidBreadthFirstSearch(Level level, BlockPos pos) { && !blockState.is(Blocks.KELP_PLANT) && !blockState.is(Blocks.SEAGRASS) && !blockState.is(Blocks.TALL_SEAGRASS)) { - return false; + return BlockPos.TraversalNodeStatus.SKIP; } BlockEntity blockEntity = @@ -104,23 +106,23 @@ private boolean removeFluidBreadthFirstSearch(Level level, BlockPos pos) { dropResources(blockState, level, checkedPos, blockEntity); level.setBlock(checkedPos, Blocks.AIR.defaultBlockState(), 3); } - return true; + return BlockPos.TraversalNodeStatus.ACCEPT; } ) > 1; } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston ) { - if (level.isClientSide) return; + if (level.isClientSide()) return; if (AnvilCraft.CONFIG.cleanFluidAfterUpdateMengerSponge) { - removeFluidBreadthFirstSearch(level, pos); + this.removeFluidBreadthFirstSearch(level, pos); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/OverseerBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/OverseerBlock.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/block/OverseerBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/OverseerBlock.java index 1ed424e9b8..1fb0990d4f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/OverseerBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/OverseerBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility; import dev.dubhe.anvilcraft.api.IHasMultiBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -24,7 +24,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class OverseerBlock extends SimpleMultiPartBlock @@ -105,7 +105,7 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Override public BlockEntityTicker getTicker( Level level, BlockState state, BlockEntityType type) { - if (level.isClientSide) return null; + if (level.isClientSide()) return null; if (state.getValue(HALF) != Vertical3PartHalf.BOTTOM) return null; return (level1, pos, state1, entity) -> { if (entity instanceof OverseerBlockEntity be) be.tick(level1, pos, state1); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/utility/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/package-info.java new file mode 100644 index 0000000000..be8944e321 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.utility; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/AdvancedComparatorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/AdvancedComparatorBlock.java similarity index 84% rename from src/main/java/dev/dubhe/anvilcraft/block/AdvancedComparatorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/AdvancedComparatorBlock.java index de9735bea5..641d9c0146 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/AdvancedComparatorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/AdvancedComparatorBlock.java @@ -1,8 +1,7 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility.redstone; import com.mojang.serialization.MapCodec; import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; -import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.entity.AdvancedComparatorBlockEntity; import dev.dubhe.anvilcraft.block.entity.AdvancedComparatorBlockEntity.Mode; @@ -18,7 +17,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.decoration.ItemFrame; import net.minecraft.world.entity.player.Player; @@ -38,12 +36,16 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.redstone.ExperimentalRedstoneUtils; +import net.minecraft.world.level.redstone.Orientation; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.event.EventHooks; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.EnumSet; import java.util.List; @@ -107,7 +109,14 @@ protected int getSignal(BlockState state, BlockGetter level, BlockPos pos, Direc } @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { level.scheduleTick(pos, this, getDelay()); } @@ -133,19 +142,20 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - if (!state.is(newState.getBlock())) { - super.onRemove(state, level, pos, newState, false); + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + if (!state.is(level.getBlockState(pos).getBlock())) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); } Direction facing = state.getValue(FACING); BlockPos front = pos.relative(facing.getOpposite()); if (EventHooks.onNeighborNotify(level, pos, level.getBlockState(pos), EnumSet.of(facing.getOpposite()), false).isCanceled()) return; - level.neighborChanged(front, this, pos); - level.updateNeighborsAtExceptFromFacing(front, this, facing); + Orientation orientation = ExperimentalRedstoneUtils.initialOrientation(level, facing.getOpposite(), null); + level.neighborChanged(front, this, orientation); + level.updateNeighborsAtExceptFromFacing(front, this, facing, orientation); } public void update(Level level, BlockPos pos, BlockState state) { - if (level.isClientSide) return; + if (level.isClientSide()) return; BlockEntity blockentity = level.getBlockEntity(pos); if (!(blockentity instanceof AdvancedComparatorBlockEntity comparator)) return; Mode mode = comparator.getCompareMode(); @@ -180,13 +190,13 @@ public static int getInputSignal(Level level, BlockPos pos, BlockState state) { BlockState blockstate = level.getBlockState(blockpos); int i = level.getSignal(blockpos, direction); if (blockstate.hasAnalogOutputSignal()) { - i = blockstate.getAnalogOutputSignal(level, blockpos); + i = blockstate.getAnalogOutputSignal(level, blockpos, direction); } else if (i < 15 && blockstate.isRedstoneConductor(level, blockpos)) { blockpos = blockpos.relative(direction); blockstate = level.getBlockState(blockpos); ItemFrame itemframe = getItemFrame(level, direction, blockpos); int j = Integer.MIN_VALUE; - if (blockstate.hasAnalogOutputSignal()) j = Math.max(j, blockstate.getAnalogOutputSignal(level, blockpos)); + if (blockstate.hasAnalogOutputSignal()) j = Math.max(j, blockstate.getAnalogOutputSignal(level, blockpos, direction)); if (itemframe != null) j = Math.max(j, itemframe.getAnalogOutput()); if (j != Integer.MIN_VALUE) { i = j; @@ -207,7 +217,7 @@ private static ItemFrame getItemFrame(Level level, Direction facing, BlockPos po pos.getY() + 1, pos.getZ() + 1 ), - (frame) -> frame != null && frame.getDirection() == facing + frame -> frame.getDirection() == facing ); if (!list.isEmpty()) return list.getFirst(); return null; @@ -224,7 +234,7 @@ public static int getAlternateSignal(SignalGetter level, BlockPos pos, BlockStat @Override protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { Optional optional = level.getBlockEntity(pos, ModBlockEntities.ADVANCED_COMPARATOR.get()); - if (level.isClientSide || optional.isEmpty()) return; + if (level.isClientSide() || optional.isEmpty()) return; AdvancedComparatorBlockEntity blockEntity = optional.get(); blockEntity.updateInputtingSignal(level, pos, state); this.updateBlockAndNeighbours(level, pos, state, blockEntity); @@ -243,8 +253,9 @@ protected void updateBlockAndNeighbours(Level level, BlockPos pos, BlockState st .setValue(AdvancedComparatorBlock.INPUT, inputtingSignal > 0) .setValue(AdvancedComparatorBlock.POWER, inputtingSignal) .setValue(AdvancedComparatorBlock.MODE, mode)); - level.neighborChanged(neighbourPos, state.getBlock(), pos); - level.updateNeighborsAtExceptFromFacing(neighbourPos, state.getBlock(), direction.getOpposite()); + Orientation orientation = ExperimentalRedstoneUtils.initialOrientation(level, direction, null); + level.neighborChanged(neighbourPos, state.getBlock(), orientation); + level.updateNeighborsAtExceptFromFacing(neighbourPos, state.getBlock(), direction.getOpposite(), orientation); } @Override @@ -264,7 +275,7 @@ protected InteractionResult useWithoutItem( Player player, BlockHitResult hitResult ) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } BlockEntity be = level.getBlockEntity(pos); @@ -280,7 +291,7 @@ protected InteractionResult useWithoutItem( } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -289,26 +300,29 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - if (level.isClientSide) return ItemInteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; if (player instanceof ServerPlayer serverPlayer) { if (level.getBlockEntity(pos) instanceof AdvancedComparatorBlockEntity be && player.getItemInHand(hand).is(ModItems.DISK)) { - return Util.interactionResultConverter() - .apply(be.useDisk(level, serverPlayer, hand, serverPlayer.getItemInHand(hand), hitResult)); + return be.useDisk(level, serverPlayer, hand, serverPlayer.getItemInHand(hand), hitResult); } } return super.useItemOn(stack, state, level, pos, player, hand, hitResult); } @Override - public CompoundTag clearData(Level level, BlockPos pos) { - return level.getBlockEntity(pos, ModBlockEntities.ADVANCED_COMPARATOR.get()) + public void storeData(Level level, BlockPos pos, ValueOutput output) { + level.getBlockEntity(pos, ModBlockEntities.ADVANCED_COMPARATOR.get()) .map(AdvancedComparatorBlockEntity::exportMoveData) - .orElseGet(CompoundTag::new); + .ifPresent(data -> output.store("MoveData", CompoundTag.CODEC, data)); } @Override - public void setData(Level level, BlockPos pos, CompoundTag tag) { - level.getBlockEntity(pos, ModBlockEntities.ADVANCED_COMPARATOR.get()) - .ifPresent(be -> be.applyMoveData(level, pos, level.getBlockState(pos), tag)); + public void loadData(Level level, BlockPos pos, ValueInput input) { + level.getBlockEntity(pos, ModBlockEntities.ADVANCED_COMPARATOR.get()).ifPresent(be -> be.applyMoveData( + level, + pos, + level.getBlockState(pos), + input.read("MoveData", CompoundTag.CODEC).orElse(new CompoundTag()) + )); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/BlockComparatorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/BlockComparatorBlock.java new file mode 100644 index 0000000000..dbb0e266dc --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/BlockComparatorBlock.java @@ -0,0 +1,186 @@ +package dev.dubhe.anvilcraft.block.utility.redstone; + +import com.mojang.serialization.MapCodec; +import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +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.HorizontalDirectionalBlock; +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.EnumProperty; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.ExperimentalRedstoneUtils; +import net.minecraft.world.level.redstone.Orientation; +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 org.jspecify.annotations.Nullable; + +public class BlockComparatorBlock extends HorizontalDirectionalBlock implements HammerRotateBehavior, IHammerRemovable { + + public static final MapCodec CODEC = simpleCodec(BlockComparatorBlock::new); + + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final BooleanProperty PRECISE = BooleanProperty.create("precise"); + public static final BooleanProperty POWERED = BlockStateProperties.POWERED; + + public static final VoxelShape NORTH_MODEL = Shapes.or(Block.box(0, 4, 0, 16, 7, 6), Block.box(4, 0, 3, 12, 8, 16)); + public static final VoxelShape EAST_MODEL = Shapes.or(Block.box(10, 4, 0, 16, 7, 16), Block.box(0, 0, 4, 13, 8, 12)); + public static final VoxelShape SOUTH_MODEL = Shapes.or(Block.box(0, 4, 10, 16, 7, 16), Block.box(4, 0, 0, 12, 8, 13)); + public static final VoxelShape WEST_MODEL = Shapes.or(Block.box(0, 4, 0, 6, 7, 16), Block.box(3, 0, 4, 16, 8, 12)); + + public BlockComparatorBlock(Properties properties) { + super(properties); + this.registerDefaultState( + this.stateDefinition + .any() + .setValue(FACING, Direction.NORTH) + .setValue(PRECISE, false) + .setValue(POWERED, false) + ); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING).add(PRECISE).add(POWERED); + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Override + public VoxelShape getShape( + BlockState state, + BlockGetter level, + BlockPos pos, + CollisionContext context + ) { + return switch (state.getValue(HorizontalDirectionalBlock.FACING)) { + case NORTH -> NORTH_MODEL; + case SOUTH -> SOUTH_MODEL; + case EAST -> EAST_MODEL; + case WEST -> WEST_MODEL; + default -> super.getShape(state, level, pos, context); + }; + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Direction direction = context.getHorizontalDirection(); + return this.defaultBlockState().setValue(FACING, direction.getOpposite()); + } + + @Override + protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean isMoving) { + if (level.isClientSide() || (oldState.is(this) && state.getValue(FACING) == oldState.getValue(FACING))) return; + boolean newPowered = this.checkBlocks(level, pos, state); + level.setBlock(pos, state.setValue(POWERED, newPowered), 3); + this.updateNeighborsInFront(level, pos, state); + } + + @Override + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + BlockState newState = level.getBlockState(pos); + if (level.isClientSide() || (state.is(newState.getBlock()) && state.getValue(FACING) == newState.getValue(FACING))) return; + if (state.getValue(POWERED)) { + this.updateNeighborsInFront(level, pos, state); + } + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + if (!player.getAbilities().mayBuild) { + return InteractionResult.PASS; + } else { + BlockState newState = state.cycle(PRECISE); + level.setBlock(pos, newState.setValue(POWERED, this.checkBlocks(level, pos, newState)), 2); + this.updateNeighborsInFront(level, pos, state); + return level.isClientSide() ? InteractionResult.SUCCESS : InteractionResult.SUCCESS_SERVER; + } + } + + private boolean checkBlocks(LevelAccessor level, BlockPos pos, BlockState blockState) { + Direction facing = blockState.getValue(FACING); + BlockState state1 = level.getBlockState(pos.relative(facing.getClockWise())); + BlockState state2 = level.getBlockState(pos.relative(facing.getCounterClockWise())); + return blockState.getValue(PRECISE) ? state1.equals(state2) : state1.getBlock() == state2.getBlock(); + } + + @Override + protected BlockState updateShape( + BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, + Direction directionToNeighbour, + BlockPos neighbourPos, + BlockState neighbourState, + RandomSource random + ) { + Direction facing = state.getValue(FACING); + if (directionToNeighbour.getAxis() == Direction.Axis.Y || directionToNeighbour.getAxis() == facing.getAxis()) return state; + if (!level.isClientSide() && !ticks.getBlockTicks().hasScheduledTick(pos, this)) { + ticks.scheduleTick(pos, this, 2); + } + return state; + } + + @Override + protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + boolean same = this.checkBlocks(level, pos, state); + if (same != state.getValue(POWERED)) { + level.setBlock(pos, state.setValue(POWERED, same), 2); + this.updateNeighborsInFront(level, pos, state); + } + } + + protected void updateNeighborsInFront(Level level, BlockPos pos, BlockState state) { + Direction direction = state.getValue(FACING).getOpposite(); + BlockPos blockpos = pos.relative(direction.getOpposite()); + Orientation orientation = ExperimentalRedstoneUtils.initialOrientation(level, direction, null); + level.neighborChanged(blockpos, this, orientation); + level.updateNeighborsAtExceptFromFacing(blockpos, this, direction, orientation); + } + + @Override + public boolean canConnectRedstone(BlockState state, BlockGetter level, BlockPos pos, @Nullable Direction direction) { + return direction == state.getValue(FACING); + } + + @Override + protected boolean isSignalSource(BlockState state) { + return true; + } + + @Override + protected int getDirectSignal(BlockState blockState, BlockGetter blockAccess, BlockPos pos, Direction side) { + return blockState.getSignal(blockAccess, pos, side); + } + + @Override + protected int getSignal(BlockState blockState, BlockGetter blockAccess, BlockPos pos, Direction side) { + return blockState.getValue(POWERED) && blockState.getValue(FACING) == side ? 15 : 0; + } + + @Override + protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) { + return false; + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ItemDetectorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/ItemDetectorBlock.java similarity index 85% rename from src/main/java/dev/dubhe/anvilcraft/block/ItemDetectorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/ItemDetectorBlock.java index 288d0320fa..d1e9500cae 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ItemDetectorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/ItemDetectorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility.redstone; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; @@ -10,6 +10,7 @@ import dev.dubhe.anvilcraft.init.item.ModItems; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -32,18 +33,18 @@ 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.ExperimentalRedstoneUtils; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.event.EventHooks; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.EnumSet; public class ItemDetectorBlock extends BetterBaseEntityBlock implements EntityBlock, HammerRotateBehavior, IHammerRemovable { - - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; public static final BooleanProperty POWERED = BlockStateProperties.POWERED; public static final MapCodec CODEC = simpleCodec(ItemDetectorBlock::new); public static final VoxelShape SHAPE = Block.box(0, 0, 0, 16, 4, 16); @@ -91,7 +92,7 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { @Override protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean isMoving) { - if (level.isClientSide || (oldState.is(this) && state.getValue(FACING) == oldState.getValue(FACING))) return; + if (level.isClientSide() || (oldState.is(this) && state.getValue(FACING) == oldState.getValue(FACING))) return; if (level.getBlockEntity(pos) instanceof ItemDetectorBlockEntity blockEntity) { blockEntity.recalcDetectionRange(); } @@ -99,11 +100,9 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o } @Override - protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { - super.onRemove(state, level, pos, newState, isMoving); - if (level.isClientSide - || (state.is(newState.getBlock()) && state.getValue(FACING) == newState.getValue(FACING)) - || !state.getValue(POWERED)) { + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); + if (!state.getValue(POWERED)) { return; } this.updateNeighborsInFront(level, pos, state); @@ -116,7 +115,7 @@ public InteractionResult use( Player player, InteractionHand hand, BlockHitResult hit) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } BlockEntity blockEntity = level.getBlockEntity(pos); @@ -138,8 +137,13 @@ public void updateNeighborsInFront(Level level, BlockPos pos, BlockState state) if (EventHooks.onNeighborNotify(level, pos, level.getBlockState(pos), EnumSet.of(direction.getOpposite()), false).isCanceled()) { return; } - level.neighborChanged(blockpos, this, pos); - level.updateNeighborsAtExceptFromFacing(blockpos, this, direction); + level.neighborChanged(blockpos, this, ExperimentalRedstoneUtils.initialOrientation(level, direction.getOpposite(), Direction.UP)); + level.updateNeighborsAtExceptFromFacing( + blockpos, + this, + direction, + ExperimentalRedstoneUtils.initialOrientation(level, direction.getOpposite(), Direction.UP) + ); } @Override @@ -175,7 +179,7 @@ protected int getSignal(BlockState blockState, BlockGetter blockAccess, BlockPos BlockState state, BlockEntityType type ) { - if (level.isClientSide) { + if (level.isClientSide()) { return null; } return createTickerHelper(type, ModBlockEntities.ITEM_DETECTOR.get(), diff --git a/src/main/java/dev/dubhe/anvilcraft/block/PulseGeneratorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/PulseGeneratorBlock.java similarity index 87% rename from src/main/java/dev/dubhe/anvilcraft/block/PulseGeneratorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/PulseGeneratorBlock.java index 14a510cc5b..f3dbf36b65 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/PulseGeneratorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/PulseGeneratorBlock.java @@ -1,8 +1,7 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.utility.redstone; import com.mojang.serialization.MapCodec; import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; -import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.hammer.IHammerChangeable; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.entity.PulseGeneratorBlockEntity; @@ -17,7 +16,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.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; @@ -35,12 +33,15 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.levelgen.structure.BoundingBox; +import net.minecraft.world.level.redstone.Orientation; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.ticks.TickPriority; import net.neoforged.neoforge.event.EventHooks; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.EnumSet; import java.util.Optional; @@ -93,7 +94,14 @@ protected int getSignal(BlockState state, BlockGetter level, BlockPos pos, Direc } @Override - protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + protected void neighborChanged( + BlockState state, + Level level, + BlockPos pos, + Block block, + @Nullable Orientation orientation, + boolean movedByPiston + ) { this.update(level, pos, () -> state); } @@ -115,22 +123,22 @@ protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState o } @Override - protected 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 movedByPiston) { + if (!state.is(level.getBlockState(pos).getBlock())) { if (level instanceof ServerLevel serverLevel) { serverLevel.getBlockTicks().clearArea(new BoundingBox(pos)); } - super.onRemove(state, level, pos, newState, false); + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); } Direction facing = state.getValue(FACING); BlockPos front = pos.relative(facing.getOpposite()); if (EventHooks.onNeighborNotify(level, pos, level.getBlockState(pos), EnumSet.of(facing.getOpposite()), false).isCanceled()) return; - level.neighborChanged(front, this, pos); - level.updateNeighborsAtExceptFromFacing(front, this, facing); + level.neighborChanged(front, this, Orientation.random(level.getRandom())); + level.updateNeighborsAtExceptFromFacing(front, this, facing, Orientation.random(level.getRandom())); } public void update(Level level, BlockPos pos, Supplier stateGetter) { - if (level.isClientSide) return; + if (level.isClientSide()) return; BlockEntity blockentity = level.getBlockEntity(pos); if (!(blockentity instanceof PulseGeneratorBlockEntity generator)) return; @@ -230,8 +238,13 @@ protected void updateBlockAndNeighbours( level.setBlockAndUpdate(pos, newState); // noinspection deprecation generator.setBlockState(newState); - level.neighborChanged(neighbourPos, state.getBlock(), pos); - level.updateNeighborsAtExceptFromFacing(neighbourPos, state.getBlock(), direction.getOpposite()); + level.neighborChanged(neighbourPos, state.getBlock(), Orientation.random(level.getRandom())); + level.updateNeighborsAtExceptFromFacing( + neighbourPos, + state.getBlock(), + direction.getOpposite(), + Orientation.random(level.getRandom()) + ); if (generator.getSignalDuration() == 0) { level.scheduleTick(pos, this, 1, TickPriority.LOW); } @@ -271,14 +284,15 @@ protected InteractionResult useWithoutItem( Player player, BlockHitResult hitResult ) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } BlockEntity be = level.getBlockEntity(pos); if (be instanceof PulseGeneratorBlockEntity blockEntity && player instanceof ServerPlayer sp) { if (sp.gameMode.getGameModeForPlayer() == GameType.SPECTATOR) return InteractionResult.PASS; sp.openMenu( - blockEntity, buf -> { + blockEntity, + buf -> { buf.writeBlockPos(pos); buf.writeNbt(blockEntity.constructDataNbt()); } @@ -289,7 +303,7 @@ protected InteractionResult useWithoutItem( } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -298,11 +312,10 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - if (level.isClientSide) return ItemInteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; if (player instanceof ServerPlayer serverPlayer) { if (level.getBlockEntity(pos) instanceof PulseGeneratorBlockEntity be && player.getItemInHand(hand).is(ModItems.DISK)) { - return Util.interactionResultConverter() - .apply(be.useDisk(level, serverPlayer, hand, serverPlayer.getItemInHand(hand), hitResult)); + return be.useDisk(level, serverPlayer, hand, serverPlayer.getItemInHand(hand), hitResult); } } return super.useItemOn(stack, state, level, pos, player, hand, hitResult); @@ -324,17 +337,20 @@ public boolean change(Player player, BlockPos blockPos, Level level, ItemStack a } @Override - public CompoundTag clearData(Level level, BlockPos pos) { - CompoundTag[] data = new CompoundTag[1]; + public void storeData(Level level, BlockPos pos, ValueOutput output) { level.getBlockEntity(pos, ModBlockEntities.PULSE_GENERATOR.get()) - .ifPresent(be -> data[0] = be.exportMoveData()); - return data[0]; + .ifPresent(be -> output.store("Data", CompoundTag.CODEC, be.exportMoveData())); } @Override - public void setData(Level level, BlockPos pos, CompoundTag tag) { + public void loadData(Level level, BlockPos pos, ValueInput input) { level.getBlockEntity(pos, ModBlockEntities.PULSE_GENERATOR.get()) - .ifPresent(be -> be.applyMoveData(level, pos, level.getBlockState(pos), tag)); + .ifPresent(be -> be.applyMoveData( + level, + pos, + level.getBlockState(pos), + input.read("Data", CompoundTag.CODEC).orElse(new CompoundTag()) + )); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/package-info.java new file mode 100644 index 0000000000..0f221a3073 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/utility/redstone/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.utility.redstone; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/ConfinementChamberBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ConfinementChamberBlock.java similarity index 84% rename from src/main/java/dev/dubhe/anvilcraft/block/ConfinementChamberBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/ConfinementChamberBlock.java index 4eef23c782..21350802e1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/ConfinementChamberBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ConfinementChamberBlock.java @@ -1,14 +1,15 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.entity.ConfinementChamberBlockEntity; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.init.item.ModItems; +import dev.dubhe.anvilcraft.util.ItemResourceHelper; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.InteractionHand; -import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -21,7 +22,7 @@ import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.List; @@ -30,7 +31,7 @@ public ConfinementChamberBlock(Properties properties) { super(properties); } - public static final ResourceLocation CONTENTS = ResourceLocation.withDefaultNamespace("contents"); + public static final Identifier CONTENTS = Identifier.withDefaultNamespace("contents"); @Override protected MapCodec codec() { @@ -49,7 +50,7 @@ protected RenderShape getRenderShape(BlockState state) { // Unimplemented for current version /*@Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -66,14 +67,18 @@ protected ItemInteractionResult useItemOn( if (itemStack.is(handItemStack.getItem())) return ItemInteractionResult.FAIL; player.setItemInHand(hand, itemStack.copy()); confinementChamberBlockEntity.getItemHandler().setStackInSlot(0, handItemStack.copy()); - return ItemInteractionResult.sidedSuccess(level.isClientSide); + return level.isClientSide() ? InteractionResult.SUCCESS : InteractionResult.SUCCESS_SERVER; }*/ @Override public BlockState playerWillDestroy(Level level, BlockPos pos, BlockState state, Player player) { BlockEntity blockentity = level.getBlockEntity(pos); if (blockentity instanceof ConfinementChamberBlockEntity confinementChamberBlockEntity) { - if (!level.isClientSide && player.isCreative() && !confinementChamberBlockEntity.getItemHandler().getStackInSlot(0).isEmpty()) { + if ( + !level.isClientSide() + && player.isCreative() + && !ItemResourceHelper.isSlotEmpty(confinementChamberBlockEntity.getItemHandler(), 0) + ) { ItemStack itemstack = new ItemStack(ModBlocks.CONFINEMENT_CHAMBER.asItem()); itemstack.applyComponents(blockentity.collectComponents()); ItemEntity itementity = new ItemEntity( @@ -102,7 +107,7 @@ protected List getDrops(BlockState state, LootParams.Builder params) } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -111,11 +116,11 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - if (!level.isClientSide) { + if (!level.isClientSide()) { if (stack.is(ModItems.CHARGED_NEUTRONIUM_INGOT)) { level.setBlockAndUpdate(pos, ModBlocks.CONFINED_NEUTRONIUM_INGOT_BLOCK.getDefaultState()); stack.consume(1, player); - return ItemInteractionResult.SUCCESS; + return InteractionResult.SUCCESS; } } return super.useItemOn(stack, state, level, pos, player, hand, hitResult); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CorruptedBeaconBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/CorruptedBeaconBlock.java similarity index 97% rename from src/main/java/dev/dubhe/anvilcraft/block/CorruptedBeaconBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/CorruptedBeaconBlock.java index 3a55301d19..d4a0817049 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/CorruptedBeaconBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/CorruptedBeaconBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.entity.CorruptedBeaconBlockEntity; @@ -19,7 +19,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Objects; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/CrushingTableBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/CrushingTableBlock.java similarity index 87% rename from src/main/java/dev/dubhe/anvilcraft/block/CrushingTableBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/CrushingTableBlock.java index 1ac2fe5f06..b5535b78b0 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/CrushingTableBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/CrushingTableBlock.java @@ -1,11 +1,13 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; 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.SimpleWaterloggedBlock; import net.minecraft.world.level.block.state.BlockState; @@ -86,17 +88,19 @@ public FluidState getFluidState(BlockState blockState) { } @Override - public BlockState updateShape( + protected BlockState updateShape( BlockState blockState, + LevelReader levelReader, + ScheduledTickAccess ticks, + BlockPos blockPos, Direction direction, + BlockPos blockPos2, BlockState blockState2, - LevelAccessor levelAccessor, - BlockPos blockPos, - BlockPos blockPos2 + RandomSource random ) { if (blockState.getValue(WATERLOGGED)) { - levelAccessor.scheduleTick(blockPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelAccessor)); + ticks.scheduleTick(blockPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelReader)); } - return super.updateShape(blockState, direction, blockState2, levelAccessor, blockPos, blockPos2); + return super.updateShape(blockState, levelReader, ticks, blockPos, direction, blockPos2, blockState2, random); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/workstation/FishTankBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/FishTankBlock.java new file mode 100644 index 0000000000..8ae3888334 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/FishTankBlock.java @@ -0,0 +1,249 @@ +package dev.dubhe.anvilcraft.block.workstation; + +import com.mojang.serialization.MapCodec; +import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; +import dev.anvilcraft.lib.v2.recipe.cache.BlockCache; +import dev.anvilcraft.lib.v2.util.ShapeUtil; +import dev.anvilcraft.lib.v2.util.Util; +import dev.dubhe.anvilcraft.api.block.IIgnitableCauldron; +import dev.dubhe.anvilcraft.api.hammer.HammerRotateBehavior; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.block.entity.FishTankBlockEntity; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; +import dev.dubhe.anvilcraft.init.item.ModItemTags; +import dev.dubhe.anvilcraft.util.ModInteractionMap; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.cauldron.CauldronInteraction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.InsideBlockEffectApplier; +import net.minecraft.world.entity.item.ItemEntity; +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.block.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.EnumProperty; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +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 net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidStacksResourceHandler; +import net.neoforged.neoforge.transfer.fluid.FluidUtil; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.item.ItemStacksResourceHandler; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.Nullable; + +public class FishTankBlock extends Block implements IMoveableEntityBlock, HammerRotateBehavior, IHammerRemovable, IIgnitableCauldron { + public static final BooleanProperty TROPICAL = BooleanProperty.create("tropical"); + public static final BooleanProperty OUTLET = BooleanProperty.create("outlet"); + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + + public static final VoxelShape SHAPE = ShapeUtil.cut( + Shapes.block(), + Block.box(2.0, 14.0, 2.0, 14.0, 16.0, 14.0), + Block.box(1.0, 1.0, 1.0, 15.0, 14.0, 15.0) + ); + + public FishTankBlock(Properties properties) { + super(properties); + this.registerDefaultState( + this.stateDefinition.any() + .setValue(FishTankBlock.TROPICAL, false) + .setValue(FishTankBlock.OUTLET, false) + .setValue(FishTankBlock.FACING, Direction.NORTH) + ); + } + + @Override + protected MapCodec codec() { + return Block.simpleCodec(FishTankBlock::new); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FishTankBlock.TROPICAL, FishTankBlock.OUTLET, FishTankBlock.FACING); + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return FishTankBlock.SHAPE; + } + + @Override + protected VoxelShape getInteractionShape(BlockState state, BlockGetter level, BlockPos pos) { + return Shapes.block(); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Direction facing = context.getHorizontalDirection().getOpposite(); + return this.defaultBlockState().setValue(FishTankBlock.FACING, facing); + } + + @Override + public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { + if (entity.getType().equals(EntityType.ARROW) && entity.isOnFire()) { + this.tryIgnite(level, pos); + return; + } + if (!(entity instanceof ItemEntity itemEntity)) return; + if (itemEntity.getItem().is(ModItemTags.FIRE_STARTER)) { + this.tryIgnite(level, pos); + itemEntity.getItem().setCount(itemEntity.getItem().getCount() - 1); + } else if (itemEntity.getItem().is(ModItemTags.UNBROKEN_FIRE_STARTER)) { + this.tryIgnite(level, pos); + } + ResourceHandler items = level.getCapability(Capabilities.Item.BLOCK, pos, null); + if (!(items instanceof ItemStacksResourceHandler stacks)) return; + FishTankBlockEntity.insertToTank(stacks, stacks::set, itemEntity); + } + + @Override + protected void entityInside( + BlockState state, + Level level, + BlockPos pos, + Entity entity, + InsideBlockEffectApplier effectApplier, + boolean isPrecise + ) { + if (entity.getType().equals(EntityType.ARROW) && entity.isOnFire()) { + this.tryIgnite(level, pos); + return; + } + if (!(entity instanceof ItemEntity itemEntity)) return; + if (itemEntity.getItem().is(ModItemTags.FIRE_STARTER)) { + this.tryIgnite(level, pos); + itemEntity.getItem().setCount(itemEntity.getItem().getCount() - 1); + } else if (itemEntity.getItem().is(ModItemTags.UNBROKEN_FIRE_STARTER)) { + this.tryIgnite(level, pos); + } + ResourceHandler items = level.getCapability(Capabilities.Item.BLOCK, pos, null); + if (!(items instanceof ItemStacksResourceHandler stacks)) return; + FishTankBlockEntity.insertToTank(stacks, stacks::set, itemEntity); + } + + @Override + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + level.updateNeighbourForOutputSignal(pos, this); + } + + @Override + protected InteractionResult useItemOn( + ItemStack stack, + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hitResult + ) { + if (stack.is(ModItemTags.ANVIL_HAMMER)) return this.changeOutlet(level, pos, state, player, hitResult); + CauldronInteraction interaction = ModInteractionMap.FISH_TANK.get(stack); + if (!interaction.equals(CauldronInteraction.DEFAULT)) return interaction.interact(state, level, pos, player, hand, stack); + return this.useItemOnTank(stack, state, level, pos, player, hand, hitResult); + } + + public InteractionResult changeOutlet(Level level, BlockPos pos, BlockState state, Player player, BlockHitResult hitResult) { + if (!level.isClientSide()) { + // 水平的四个方向根据被右键的方向转换 + Direction outletDir = Direction.from2DDataValue((hitResult.getDirection().get2DDataValue())); + boolean hasOutlet = !state.getValue(FishTankBlock.OUTLET); + BlockState newState = state.setValue(FishTankBlock.OUTLET, hasOutlet).setValue(FishTankBlock.FACING, outletDir); + + level.setBlock(pos, newState, 3); + } + level.playSound(player, pos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 1.0F, 1.0F); + return InteractionResult.SUCCESS; + } + + public boolean tryIgnite(Level level, BlockPos pos) { + if (!(level.getBlockEntity(pos) instanceof FishTankBlockEntity tank)) return false; + if (!FishTankBlockEntity.shouldIgnite(FluidUtil.getStack(tank.getFluidHandler(), 0))) return false; + if (tank.isIgnited()) return false; + tank.setIgnited(true); + return true; + } + + private InteractionResult useItemOnTank( + ItemStack stack, + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hitResult + ) { + InteractionResult result = super.useItemOn(stack, state, level, pos, player, hand, hitResult); + if (result == InteractionResult.PASS) { + if (level.getBlockEntity(pos) instanceof FishTankBlockEntity tank) { + if (tank.onPlayerUse(player, hand, hitResult)) { + return level.isClientSide() ? InteractionResult.SUCCESS : InteractionResult.SUCCESS_SERVER; + } + } + } + return InteractionResult.PASS; + } + + @Override + public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return ModBlockEntities.FISH_TANK.create(pos, state); + } + + @Override + public void storeData(Level level, BlockPos pos, ValueOutput output) { + level.getBlockEntity(pos, ModBlockEntities.FISH_TANK.get()) + .ifPresent(be -> be.saveCustomOnly(output)); + } + + @Override + public void loadData(Level level, BlockPos pos, ValueInput input) { + level.getBlockEntity(pos, ModBlockEntities.FISH_TANK.get()) + .ifPresent(be -> be.loadAdditional(input)); + } + + @Override + public boolean isIgnited(BlockCache cache, BlockPos pos) { + return Util.cast(cache.getBlockEntity(pos)).isIgnited(); + } + + @Override + public void setIgnited(BlockCache cache, BlockPos pos, boolean ignited) { + Util.cast(cache.getBlockEntity(pos)).setIgnited(ignited); + } + + @Override + public Fluid getFluid(BlockCache cache, BlockPos pos) { + return Util.cast(cache.getBlockEntity(pos)).getFluidHandler().getResource(0).getFluid(); + } + + @Override + public boolean consumeOnce(BlockCache cache, BlockPos pos) { + FluidStacksResourceHandler handler = Util.cast(cache.getBlockEntity(pos)).getFluidHandler(); + try (Transaction transaction = Transaction.openRoot()) { + int extracted = handler.extract(0, handler.getResource(0), 250, transaction); + if (extracted < 250) return false; + transaction.commit(); + return true; + } + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/GiantAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/GiantAnvilBlock.java similarity index 90% rename from src/main/java/dev/dubhe/anvilcraft/block/GiantAnvilBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/GiantAnvilBlock.java index ff03918a18..05328c678c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/GiantAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/GiantAnvilBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -8,6 +8,8 @@ import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.api.power.IPowerComponent; import dev.dubhe.anvilcraft.block.multipart.SimpleMultiPartBlock; +import dev.dubhe.anvilcraft.block.power.ring.AccelerationRingBlock; +import dev.dubhe.anvilcraft.block.power.ring.DeflectionRingBlock; import dev.dubhe.anvilcraft.block.state.Cube3x3PartHalf; import dev.dubhe.anvilcraft.block.state.DirectionCube3x3PartHalf; import dev.dubhe.anvilcraft.block.state.GiantAnvilCube; @@ -33,7 +35,8 @@ import net.minecraft.world.inventory.ContainerLevelAccess; 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.Fallable; @@ -53,7 +56,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.common.util.DeferredSoundType; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class GiantAnvilBlock extends SimpleMultiPartBlock implements Fallable, IHammerRemovable { public static final SoundType SOUND_TYPE = new DeferredSoundType( @@ -244,7 +247,7 @@ protected float getShadeBrightness(BlockState state, BlockGetter level, BlockPos } @Override - protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + protected boolean propagatesSkylightDown(BlockState state) { return true; } @@ -273,15 +276,17 @@ public void onLand( .setValue(CUBE, part == Cube3x3PartHalf.MID_CENTER ? GiantAnvilCube.CENTER : GiantAnvilCube.CORNER); level.setBlockAndUpdate(belowPos.offset(part.getOffset()), newState); } - NeoForge.EVENT_BUS.post(new AnvilEvent.GiantOnLand(level, pos, (FallingGiantAnvilEntity) fallingBlock, fallDistance)); - for (int dx = -1; dx <= 1; dx++) { - for (int dz = -1; dz <= 1; dz++) { - BlockPos pos1 = belowPos.offset(new Vec3i(dx, 0, dz)); - NeoForge.EVENT_BUS.post(new AnvilEvent.OnLand(level, pos1, fallingBlock, fallDistance)); + if (level instanceof ServerLevel serverLevel) { + NeoForge.EVENT_BUS.post(new AnvilEvent.GiantOnLand(serverLevel, pos, (FallingGiantAnvilEntity) fallingBlock, fallDistance)); + for (int dx = -1; dx <= 1; dx++) { + for (int dz = -1; dz <= 1; dz++) { + BlockPos pos1 = belowPos.offset(new Vec3i(dx, 0, dz)); + NeoForge.EVENT_BUS.post(new AnvilEvent.OnLand(serverLevel, pos1, fallingBlock, fallDistance)); + } } } - level.playSound(null, belowPos, SoundEvents.ANVIL_LAND, SoundSource.BLOCKS, 0.55f, level.random.nextFloat() * 0.1F + 0.55f); + level.playSound(null, belowPos, SoundEvents.ANVIL_LAND, SoundSource.BLOCKS, 0.55F, level.getRandom().nextFloat() * 0.1F + 0.55F); } @Override @@ -312,7 +317,7 @@ public void tick( return; } if (state.getValue(HALF) != Cube3x3PartHalf.BOTTOM_CENTER) return; - for (Cube3x3PartHalf part : getParts()) { + for (Cube3x3PartHalf part : this.getParts()) { if (part.getOffsetY() != 0) continue; if (!FallingBlock.isFree(level.getBlockState(pos.offset(part.getOffset()).below()))) return; } @@ -331,17 +336,18 @@ public void removePartsAndUpdate(Level level, BlockPos pos) { BlockState blockState = level.getBlockState(pos); if (!blockState.is(this)) return; BlockPos bottomCenterPos = this.getMainPartPos(pos, blockState).below(); - for (Cube3x3PartHalf part : getParts()) { + for (Cube3x3PartHalf part : this.getParts()) { BlockPos bp = bottomCenterPos.offset(part.getOffset()); level.setBlock(bp, level.getBlockState(bp).getFluidState().createLegacyBlock(), 3, 0); } UPDATE_OFFSET.forEach((direction, offsetList) -> offsetList.forEach(offset -> { BlockPos updatedPos = bottomCenterPos.offset(offset); BlockPos fromPos = updatedPos.relative(direction); - level.neighborShapeChanged(direction, - level.getBlockState(fromPos), + level.neighborShapeChanged( + direction, updatedPos, fromPos, + level.getBlockState(fromPos), 3, 512 ); @@ -366,18 +372,20 @@ public void onPlace( } @Override - public BlockState updateShape( + protected BlockState updateShape( BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, Direction direction, + BlockPos neighborPos, BlockState neighborState, - LevelAccessor level, - BlockPos pos, - BlockPos neighborPos + RandomSource random ) { - if (state.hasProperty(HALF)) { - level.scheduleTick(pos.subtract(state.getValue(HALF).getOffset()), this, this.getDelayAfterPlace()); + if (state.hasProperty(HALF) && level instanceof Level actualLevel) { + actualLevel.scheduleTick(pos.subtract(state.getValue(HALF).getOffset()), this, this.getDelayAfterPlace()); } - return super.updateShape(state, direction, neighborState, level, pos, neighborPos); + return super.updateShape(state, level, ticks, pos, direction, neighborPos, neighborState, random); } protected int getDelayAfterPlace() { @@ -393,7 +401,7 @@ public InteractionResult use( InteractionHand hand, BlockHitResult hit ) { - if (level.isClientSide) { + if (level.isClientSide()) { return InteractionResult.SUCCESS; } else { player.openMenu(state.getMenuProvider(level, pos)); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/JewelCraftingTable.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/JewelCraftingTable.java similarity index 91% rename from src/main/java/dev/dubhe/anvilcraft/block/JewelCraftingTable.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/JewelCraftingTable.java index 903924640d..81b21c0573 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/JewelCraftingTable.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/JewelCraftingTable.java @@ -1,8 +1,9 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.inventory.JewelCraftingMenu; +import dev.dubhe.anvilcraft.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerPlayer; @@ -20,13 +21,13 @@ import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.pathfinder.PathComputationType; 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 org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import java.util.Objects; @@ -37,7 +38,7 @@ public class JewelCraftingTable extends Block implements IHammerRemovable { Block.box(13, 0, 13, 16, 2, 16), Block.box(0, 0, 13, 3, 2, 16), Block.box(0, 2, 0, 16, 12, 16)); - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; public JewelCraftingTable(Properties properties) { super(properties); @@ -84,7 +85,7 @@ protected boolean isPathfindable(BlockState state, PathComputationType pathCompu protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, Objects.requireNonNull(this.getMenuProvider(state, level, pos))); - return InteractionResult.sidedSuccess(level.isClientSide()); + return Util.sidedSuccess(level); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/NeoforgeBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/NeoforgeBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/NeoforgeBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/NeoforgeBlock.java index 952c7deddf..a03cbd05cc 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/NeoforgeBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/NeoforgeBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import com.mojang.serialization.MapCodec; import dev.dubhe.anvilcraft.inventory.NeoforgeMenu; @@ -12,8 +12,8 @@ import net.minecraft.world.SimpleMenuProvider; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.item.FallingBlockEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.ContainerLevelAccess; @@ -27,17 +27,17 @@ import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; -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.PathComputationType; 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 org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class NeoforgeBlock extends FallingBlock { - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; private static final VoxelShape BASE = Block.box(2.0, 0.0, 2.0, 14.0, 4.0, 14.0); private static final VoxelShape X_LEG1 = Block.box(4.0, 4.0, 5.0, 12.0, 10.0, 11.0); private static final VoxelShape X_TOP = Block.box(0.0, 10.0, 3.0, 16.0, 16.0, 13.0); @@ -90,7 +90,7 @@ protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, @Override public void falling(FallingBlockEntity entity) { - entity.setHurtsEntities(2.0f, 20); + entity.setHurtsEntities(2.0F, 20); } @Override @@ -114,7 +114,7 @@ public static void damage(Level level, BlockPos pos) { (ServerLevel) level, null, null, pos, - MobSpawnType.SPAWN_EGG, + EntitySpawnReason.SPAWN_ITEM_USE, true, false ) != null) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/NeutronIrradiatorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/NeutronIrradiatorBlock.java similarity index 89% rename from src/main/java/dev/dubhe/anvilcraft/block/NeutronIrradiatorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/NeutronIrradiatorBlock.java index 623d4ec01e..4c141472bb 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/NeutronIrradiatorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/NeutronIrradiatorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.entity.NeutronIrradiatorBlockEntity; @@ -9,10 +9,11 @@ import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class NeutronIrradiatorBlock extends Block implements IHammerRemovable, EntityBlock { public static VoxelShape MODEL = Shapes.or( @@ -35,12 +36,12 @@ public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldS } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston ) { } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/SpaceOvercompressorBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/SpaceOvercompressorBlock.java similarity index 81% rename from src/main/java/dev/dubhe/anvilcraft/block/SpaceOvercompressorBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/SpaceOvercompressorBlock.java index 20e028c95a..430be7da30 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/SpaceOvercompressorBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/SpaceOvercompressorBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import com.mojang.serialization.MapCodec; import dev.anvilcraft.lib.v2.piston.IMoveableEntityBlock; @@ -12,7 +12,9 @@ import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import org.jspecify.annotations.Nullable; public class SpaceOvercompressorBlock extends BetterBaseEntityBlock implements IHammerRemovable, IMoveableEntityBlock { public SpaceOvercompressorBlock(Properties properties) { @@ -35,21 +37,20 @@ protected MapCodec codec() { } @Override - public CompoundTag clearData(Level level, BlockPos pos) { - CompoundTag tag = new CompoundTag(); + public void loadData(Level level, BlockPos pos, ValueInput input) { BlockEntity entity = level.getBlockEntity(pos); + long mass = input.getLongOr("storedMass", 0L); if (entity instanceof SpaceOvercompressorBlockEntity s) { - tag.putLong("storedMass", s.getStoredMass()); + s.injectMass(mass - s.getStoredMass()); } - return tag; } @Override - public void setData(Level level, BlockPos pos, CompoundTag nbt) { + public void storeData(Level level, BlockPos pos, ValueOutput output) { + CompoundTag tag = new CompoundTag(); BlockEntity entity = level.getBlockEntity(pos); - long mass = nbt.getLong("storedMass"); if (entity instanceof SpaceOvercompressorBlockEntity s) { - s.injectMass(mass - s.getStoredMass()); + tag.putLong("storedMass", s.getStoredMass()); } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/SpectralAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/SpectralAnvilBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/SpectralAnvilBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/SpectralAnvilBlock.java index f59dc7faff..6795c3fae3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/SpectralAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/SpectralAnvilBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.entity.FallingSpectralBlockEntity; @@ -27,17 +27,18 @@ 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.pathfinder.PathComputationType; +import net.minecraft.world.level.redstone.Orientation; import net.minecraft.world.phys.AABB; 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 org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class SpectralAnvilBlock extends Block implements IHammerRemovable { - public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; public static final BooleanProperty POWERED = BlockStateProperties.POWERED; private static final Component CONTAINER_TITLE = Component.translatable("container.repair"); private static final VoxelShape BASE = Block.box(2.0, 0.0, 2.0, 14.0, 4.0, 14.0); @@ -94,7 +95,7 @@ protected InteractionResult useWithoutItem( Player player, BlockHitResult hitResult ) { - if (p.isClientSide) { + if (p.isClientSide()) { return InteractionResult.SUCCESS; } else { player.openMenu(s.getMenuProvider(p, pos)); @@ -137,12 +138,12 @@ protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSou } @Override - public void neighborChanged( + protected void neighborChanged( BlockState state, Level level, BlockPos pos, Block neighborBlock, - BlockPos neighborPos, + @Nullable Orientation orientation, boolean movedByPiston ) { boolean hasNeighborSignal = MagnetUtil.hasMagnetism(level, pos); diff --git a/src/main/java/dev/dubhe/anvilcraft/block/StampingPlatformBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/StampingPlatformBlock.java similarity index 86% rename from src/main/java/dev/dubhe/anvilcraft/block/StampingPlatformBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/StampingPlatformBlock.java index 904e4ef2da..9f1ba40348 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/StampingPlatformBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/StampingPlatformBlock.java @@ -1,14 +1,16 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import dev.anvilcraft.lib.v2.recipe.util.IRecipeResultOffsetBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; +import net.minecraft.util.RandomSource; 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.Mirror; import net.minecraft.world.level.block.Rotation; @@ -17,7 +19,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.level.pathfinder.PathComputationType; @@ -29,7 +31,7 @@ public class StampingPlatformBlock extends Block implements SimpleWaterloggedBlock, IHammerRemovable, IRecipeResultOffsetBlock { public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; private static final VoxelShape REDUCE_AABB = Shapes.or( Block.box(2.0, 12.0, 2.0, 14.0, 16.0, 14.0), Block.box(2.0, 0.0, 2.0, 14.0, 10.0, 14.0), @@ -97,18 +99,20 @@ public FluidState getFluidState(BlockState blockState) { @Override - public BlockState updateShape( + protected BlockState updateShape( BlockState blockState, + LevelReader levelReader, + ScheduledTickAccess ticks, + BlockPos blockPos, Direction direction, + BlockPos blockPos2, BlockState blockState2, - LevelAccessor levelAccessor, - BlockPos blockPos, - BlockPos blockPos2 + RandomSource random ) { if (blockState.getValue(WATERLOGGED)) { - levelAccessor.scheduleTick(blockPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelAccessor)); + ticks.scheduleTick(blockPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelReader)); } - return super.updateShape(blockState, direction, blockState2, levelAccessor, blockPos, blockPos2); + return super.updateShape(blockState, levelReader, ticks, blockPos, direction, blockPos2, blockState2, random); } @Override @@ -119,7 +123,7 @@ protected boolean isPathfindable(BlockState state, PathComputationType pathCompu @Override public Vec3 getOffset(Level level, BlockPos pos, BlockState state) { if (!(state.getBlock() instanceof StampingPlatformBlock)) return Vec3.ZERO; - Vec3i normal = state.getValue(FACING).getNormal(); + Vec3i normal = state.getValue(FACING).getUnitVec3i(); return new Vec3(normal.getX(), normal.getY(), normal.getZ()).scale(0.7); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/TranscendenceAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/TranscendenceAnvilBlock.java similarity index 92% rename from src/main/java/dev/dubhe/anvilcraft/block/TranscendenceAnvilBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/TranscendenceAnvilBlock.java index 79391addcc..816941da0b 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/TranscendenceAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/TranscendenceAnvilBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation; import dev.dubhe.anvilcraft.api.block.ITranscendiumBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -27,7 +27,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; @Getter @Setter @@ -54,10 +54,9 @@ public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, Co return Z_AXIS_AABB; } - @SuppressWarnings("UnreachableCode") @Override public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, state.getMenuProvider(level, pos)); player.awardStat(Stats.INTERACT_WITH_ANVIL); return InteractionResult.CONSUME; @@ -73,6 +72,6 @@ public MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) @Override public void falling(FallingBlockEntity entity) { - entity.setHurtsEntities(2.0f, Integer.MAX_VALUE); + entity.setHurtsEntities(2.0F, Integer.MAX_VALUE); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/workstation/TransparentCraftingTableBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/TransparentCraftingTableBlock.java new file mode 100644 index 0000000000..fdb61943c9 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/TransparentCraftingTableBlock.java @@ -0,0 +1,294 @@ +package dev.dubhe.anvilcraft.block.workstation; + +import dev.dubhe.anvilcraft.AnvilCraft; +import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; +import dev.dubhe.anvilcraft.init.ModMenuTypes; +import dev.dubhe.anvilcraft.init.block.ModBlockTags; +import dev.dubhe.anvilcraft.init.block.ModBlocks; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.stats.Stats; +import net.minecraft.util.RandomSource; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.CraftingMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +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.TransparentBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.phys.BlockHitResult; + +public class TransparentCraftingTableBlock extends TransparentBlock implements IHammerRemovable { + + public static final EnumProperty TYPE = EnumProperty.create("type", Type.class); + + public TransparentCraftingTableBlock(Properties properties) { + super(properties); + registerDefaultState(stateDefinition.any().setValue(TYPE, Type.SINGLE)); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(TYPE); + } + + @Override + protected InteractionResult useItemOn( + ItemStack stack, + BlockState state, + Level level, + BlockPos pos, + Player player, + InteractionHand hand, + BlockHitResult hitResult + ) { + if (stack.is(ModBlocks.TRANSPARENT_CRAFTING_TABLE.asItem())) { + return InteractionResult.FAIL; + } + return InteractionResult.PASS; + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + if (level.isClientSide()) return InteractionResult.SUCCESS; + ModMenuTypes.open((ServerPlayer) player, this.getMenuProvider(state, level, pos)); + player.awardStat(Stats.INTERACT_WITH_CRAFTING_TABLE); + return InteractionResult.SUCCESS; + } + + @Override + protected MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) { + return new SimpleMenuProvider( + (id, inventory, player) -> new CraftingMenu(id, inventory, ContainerLevelAccess.create(level, pos)), + Component.translatable("container.crafting") + ); + } + + @Override + protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { + if (oldState.is(this)) return; + if (this.tryFormMatrix(level, pos)) { + return; + } + if (state.getValue(TYPE) != Type.SINGLE) level.setBlockAndUpdate(pos, state.setValue(TYPE, Type.SINGLE)); + Direction.Plane.HORIZONTAL.stream() + .map(pos::relative) + .filter(poz -> { + BlockState adjacentState = level.getBlockState(poz); + return adjacentState.is(this) && adjacentState.getValue(TYPE) != Type.SINGLE; + }) + .forEach(poz -> this.deformMatrix(level, poz)); + } + + @Override + protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) { + super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston); + if (state.getValue(TYPE) != Type.SINGLE) { + this.deformMatrix(level, pos); + return; + } + Direction.Plane.HORIZONTAL.stream() + .map(pos::relative) + .forEach(poz -> this.tryFormMatrix(level, poz)); + } + + @Override + protected BlockState updateShape( + BlockState state, + LevelReader level, + ScheduledTickAccess ticks, + BlockPos pos, + Direction direction, + BlockPos neighborPos, + BlockState neighborState, + RandomSource random + ) { + if (!(level instanceof Level actualLevel)) { + return state; + } + if (neighborState.is(this)) return state; + if (this.tryFormMatrix(actualLevel, pos)) { + return state; + } + if (state.getValue(TYPE) != Type.SINGLE && !this.isValidMatrixBlock(neighborState, false)) { + this.deformMatrix(actualLevel, pos); + return state; + } + return state; + } + + /** + * 以某个方块为起始点,尝试构建一个有透明工作台组成的矩阵。 + * 若与该方块相连的所有透明工作台不构成一个长方形,构建失败。 + * + * @param level 尝试构建矩阵的维度 + * @param pos 尝试构建矩阵的方块位置 + * @return 是否成功构建透明工作台矩阵 + */ + private boolean tryFormMatrix(Level level, BlockPos pos) { + if (!this.isValidMatrixBlock(level.getBlockState(pos), false)) return false; + int maxSize = AnvilCraft.CONFIG.transparentCraftingTableMaxMatrixSize; + int x0 = pos.getX(); + int y0 = pos.getY(); + int z0 = pos.getZ(); + BlockPos.MutableBlockPos mpos = pos.mutable(); + // 以放置方块为起始点,向正负x、z轴逐个延申并进行检测,扩充至最大作为矩阵尺寸。 + int minX = x0; + int maxX = x0; + while ((maxX - minX < maxSize) && this.isValidMatrixBlock(level.getBlockState(mpos.set(minX - 1, y0, z0)), false)) { + minX--; + } + while ((maxX - minX < maxSize) && this.isValidMatrixBlock(level.getBlockState(mpos.set(maxX + 1, y0, z0)), false)) { + maxX++; + } + int sizeX = maxX - minX + 1; + if (sizeX < 2 || sizeX > maxSize) return false; + int minZ = z0; + int maxZ = z0; + while ((maxZ - minZ < maxSize) && this.isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, minZ - 1)), false)) { + minZ--; + } + while ((maxZ - minZ < maxSize) && this.isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, maxZ + 1)), false)) { + maxZ++; + } + int sizeZ = maxZ - minZ + 1; + if (sizeZ < 2 || sizeZ > maxSize) return false; + // 检测矩阵内所有方块是否匹配 + for (int x = minX; x <= maxX; x++) { + if (x == x0) continue; + for (int z = minZ; z <= maxZ; z++) { + if (z == z0) continue; + if (!this.isValidMatrixBlock(level.getBlockState(mpos.set(x, y0, z)), false)) return false; + } + } + // 向矩阵外圈检测是否有多余的方块 + for (int x = minX; x <= maxX; x++) { + if (this.isValidMatrixBlock(level.getBlockState(mpos.set(x, y0, minZ - 1)), true)) return false; + if (this.isValidMatrixBlock(level.getBlockState(mpos.set(x, y0, maxZ + 1)), true)) return false; + } + for (int z = minZ; z <= maxZ; z++) { + if (this.isValidMatrixBlock(level.getBlockState(mpos.set(minX - 1, y0, z)), true)) return false; + if (this.isValidMatrixBlock(level.getBlockState(mpos.set(maxX + 1, y0, z)), true)) return false; + } + // 将矩阵内的通透工作台转换为连接状态 + for (int x = minX; x <= maxX; x++) { + for (int z = minZ; z <= maxZ; z++) { + int indexX = x == maxX ? 2 : (x > minX ? 1 : 0); + int indexZ = z == maxZ ? 2 : (z > minZ ? 1 : 0); + BlockState state = level.getBlockState(mpos.set(x, y0, z)); + if (!state.is(this)) continue; + level.setBlockAndUpdate(mpos, state.setValue(TYPE, Type.LOOKUP[indexX][indexZ])); + } + } + return true; + } + + /** + * 以某个方块为起始点,尝试移除该方块所属的透明工作台组成的矩阵。 + * + * @param level 尝试移除矩阵的维度 + * @param pos 尝试移除矩阵的方块位置 + */ + private void deformMatrix(Level level, BlockPos pos) { + int x0 = pos.getX(); + int y0 = pos.getY(); + int z0 = pos.getZ(); + BlockPos.MutableBlockPos mpos = pos.mutable(); + + int minX = x0; + int maxX = x0; + while (this.isValidMatrixBlock(level.getBlockState(mpos.set(minX - 1, y0, z0)), false)) { + minX--; + } + while (this.isValidMatrixBlock(level.getBlockState(mpos.set(maxX + 1, y0, z0)), false)) { + maxX++; + } + int minZ = z0; + int maxZ = z0; + while (this.isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, minZ - 1)), false)) { + minZ--; + } + while (this.isValidMatrixBlock(level.getBlockState(mpos.set(x0, y0, maxZ + 1)), false)) { + maxZ++; + } + + for (int x = minX; x <= maxX; x++) { + for (int z = minZ; z <= maxZ; z++) { + BlockState state = level.getBlockState(mpos.set(x, y0, z)); + if (!state.is(this)) continue; + level.setBlockAndUpdate(mpos, state.setValue(TYPE, Type.SINGLE)); + } + } + } + + /** + * 判断是否是通透工作台或其它允许参与形成矩阵的方块(目前仅包含空间超压器)。 + * + * @param block 需要进行判断的方块 + * @param isSelfOnly 是否只匹配通透工作台 + * @return 判断结果 + */ + public boolean isValidMatrixBlock(BlockState block, Boolean isSelfOnly) { + return block.is(this) || (!isSelfOnly && block.is(ModBlockTags.CRAFTING_MATRIX_ELEMENT)); + } + + public enum Type implements StringRepresentable { + SINGLE("single"), + CENTER("center"), + SIDE_NORTH("side_n"), + SIDE_EAST("side_e"), + SIDE_SOUTH("side_s"), + SIDE_WEST("side_w"), + CORNER_NORTH_WEST("corner_nw"), + CORNER_NORTH_EAST("corner_ne"), + CORNER_SOUTH_WEST("corner_sw"), + CORNER_SOUTH_EAST("corner_se"); + + public static final Type[][] LOOKUP = { + { + CORNER_NORTH_WEST, + SIDE_WEST, + CORNER_SOUTH_WEST + }, + { + SIDE_NORTH, + CENTER, + SIDE_SOUTH + }, + { + CORNER_NORTH_EAST, + SIDE_EAST, + CORNER_SOUTH_EAST + } + }; + + final String serializedName; + + Type(String serializedName) { + this.serializedName = serializedName; + } + + @Override + public String getSerializedName() { + return this.serializedName; + } + + @Override + public String toString() { + return this.getSerializedName(); + } + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EmberAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberAnvilBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/EmberAnvilBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberAnvilBlock.java index bd639e18af..e259c591bf 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/EmberAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberAnvilBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.ember; import dev.dubhe.anvilcraft.api.block.IEmberBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -29,7 +29,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; @Getter @Setter @@ -62,7 +62,6 @@ public VoxelShape getShape( return Z_AXIS_AABB; } - @SuppressWarnings("UnreachableCode") @Override public InteractionResult use( BlockState state, @@ -72,7 +71,7 @@ public InteractionResult use( InteractionHand hand, BlockHitResult hit ) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, state.getMenuProvider(level, pos)); player.awardStat(Stats.INTERACT_WITH_ANVIL); return InteractionResult.CONSUME; @@ -88,7 +87,7 @@ public MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) @Override public void falling(FallingBlockEntity entity) { - entity.setHurtsEntities(2.0f, 120); + entity.setHurtsEntities(2.0F, 120); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EmberGrindstoneBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberGrindstoneBlock.java similarity index 94% rename from src/main/java/dev/dubhe/anvilcraft/block/EmberGrindstoneBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberGrindstoneBlock.java index 0fe782ddbd..c32be39966 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/EmberGrindstoneBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberGrindstoneBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.ember; import dev.dubhe.anvilcraft.api.block.IEmberBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -33,7 +33,6 @@ public EmberGrindstoneBlock(Properties properties) { super(properties); } - @SuppressWarnings("UnreachableCode") public InteractionResult use( BlockState state, Level level, @@ -42,7 +41,7 @@ public InteractionResult use( InteractionHand hand, BlockHitResult hit ) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, state.getMenuProvider(level, pos)); player.awardStat(Stats.INTERACT_WITH_GRINDSTONE); return InteractionResult.CONSUME; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/EmberSmithingTableBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberSmithingTableBlock.java similarity index 88% rename from src/main/java/dev/dubhe/anvilcraft/block/EmberSmithingTableBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberSmithingTableBlock.java index ea28c7ccb6..4dafe6b5de 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/EmberSmithingTableBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/EmberSmithingTableBlock.java @@ -1,6 +1,5 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.ember; -import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.block.IEmberBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.init.ModMenuTypes; @@ -15,7 +14,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.MenuProvider; import net.minecraft.world.SimpleMenuProvider; import net.minecraft.world.entity.player.Player; @@ -40,7 +38,7 @@ public EmberSmithingTableBlock(Properties properties) { } @Override - protected ItemInteractionResult useItemOn( + protected InteractionResult useItemOn( ItemStack stack, BlockState state, Level level, @@ -49,7 +47,7 @@ protected ItemInteractionResult useItemOn( InteractionHand hand, BlockHitResult hitResult ) { - return Util.interactionResultConverter().apply(this.use(state, level, pos, player, hand, hitResult)); + return this.use(state, level, pos, player, hand, hitResult); } @Override @@ -63,7 +61,6 @@ protected InteractionResult useWithoutItem( return this.use(state, level, pos, player, InteractionHand.MAIN_HAND, hitResult); } - @SuppressWarnings("UnreachableCode") public InteractionResult use( BlockState state, Level level, @@ -72,7 +69,7 @@ public InteractionResult use( InteractionHand hand, BlockHitResult hit ) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, Objects.requireNonNull(state.getMenuProvider(level, pos))); player.awardStat(Stats.INTERACT_WITH_SMITHING_TABLE); return InteractionResult.CONSUME; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/package-info.java new file mode 100644 index 0000000000..82444c3ed8 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/ember/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.workstation.ember; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FrostAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostAnvilBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/FrostAnvilBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostAnvilBlock.java index e4b6bfea6a..5216a44891 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FrostAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostAnvilBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.frost; import dev.dubhe.anvilcraft.api.block.IFrostBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -25,7 +25,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class FrostAnvilBlock extends BetterAnvilBlock implements IHammerRemovable, IFrostBlock { private static final VoxelShape BASE = Block.box(2.0, 0.0, 2.0, 14.0, 4.0, 14.0); @@ -53,7 +53,6 @@ public VoxelShape getShape( return Z_AXIS_AABB; } - @SuppressWarnings("UnreachableCode") @Override public InteractionResult use( BlockState state, @@ -62,7 +61,7 @@ public InteractionResult use( Player player, InteractionHand hand, BlockHitResult hit) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, state.getMenuProvider(level, pos)); player.awardStat(Stats.INTERACT_WITH_ANVIL); return InteractionResult.CONSUME; @@ -79,6 +78,6 @@ public MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) @Override public void falling(FallingBlockEntity entity) { - entity.setHurtsEntities(2.0f, 120); + entity.setHurtsEntities(2.0F, 120); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FrostGrindstoneBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostGrindstoneBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/FrostGrindstoneBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostGrindstoneBlock.java index 14b526b058..fe3152d96d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FrostGrindstoneBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostGrindstoneBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.frost; import dev.dubhe.anvilcraft.api.block.IFrostBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; @@ -30,7 +30,6 @@ public FrostGrindstoneBlock(Properties properties) { super(properties); } - @SuppressWarnings("UnreachableCode") public InteractionResult use( BlockState state, Level level, @@ -39,7 +38,7 @@ public InteractionResult use( InteractionHand hand, BlockHitResult hit ) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, state.getMenuProvider(level, pos)); player.awardStat(Stats.INTERACT_WITH_GRINDSTONE); return InteractionResult.CONSUME; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/FrostSmithingTableBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostSmithingTableBlock.java similarity index 95% rename from src/main/java/dev/dubhe/anvilcraft/block/FrostSmithingTableBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostSmithingTableBlock.java index 0d9567a9de..c6263640d2 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/FrostSmithingTableBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/FrostSmithingTableBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.frost; import dev.dubhe.anvilcraft.api.block.IFrostBlock; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/package-info.java new file mode 100644 index 0000000000..4c320e32d4 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/frost/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.workstation.frost; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/workstation/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/package-info.java new file mode 100644 index 0000000000..93a9c04a0e --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.workstation; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/block/RoyalAnvilBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalAnvilBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/RoyalAnvilBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalAnvilBlock.java index 350302b33e..3a590c54e2 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/RoyalAnvilBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalAnvilBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.royal; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.better.BetterAnvilBlock; @@ -24,7 +24,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class RoyalAnvilBlock extends BetterAnvilBlock implements IHammerRemovable { private static final VoxelShape BASE = Block.box(2.0, 0.0, 2.0, 14.0, 4.0, 14.0); @@ -53,7 +53,6 @@ public VoxelShape getShape( return Z_AXIS_AABB; } - @SuppressWarnings("UnreachableCode") @Override public InteractionResult use( BlockState state, @@ -62,7 +61,7 @@ public InteractionResult use( Player player, InteractionHand hand, BlockHitResult hit) { - if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.isClientSide()) return InteractionResult.SUCCESS; ModMenuTypes.open((ServerPlayer) player, state.getMenuProvider(level, pos)); player.awardStat(Stats.INTERACT_WITH_ANVIL); return InteractionResult.CONSUME; @@ -78,6 +77,6 @@ public MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) @Override public void falling(FallingBlockEntity entity) { - entity.setHurtsEntities(2.0f, 80); + entity.setHurtsEntities(2.0F, 80); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/RoyalGrindstoneBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalGrindstoneBlock.java similarity index 93% rename from src/main/java/dev/dubhe/anvilcraft/block/RoyalGrindstoneBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalGrindstoneBlock.java index c43a4caf72..892bb6b182 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/RoyalGrindstoneBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalGrindstoneBlock.java @@ -1,9 +1,10 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.royal; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.block.better.BetterGrindstoneBlock; import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.inventory.RoyalGrindstoneMenu; +import dev.dubhe.anvilcraft.util.Util; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; @@ -29,7 +30,7 @@ public RoyalGrindstoneBlock(Properties properties) { public InteractionResult use( BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (level.isClientSide()) { - return InteractionResult.sidedSuccess(level.isClientSide()); + return Util.sidedSuccess(level); } ModMenuTypes.open((ServerPlayer) player, state.getMenuProvider(level, pos)); player.awardStat(Stats.INTERACT_WITH_GRINDSTONE); @@ -46,4 +47,5 @@ public MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) ), CONTAINER_TITLE); } + } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/RoyalSmithingTableBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalSmithingTableBlock.java similarity index 90% rename from src/main/java/dev/dubhe/anvilcraft/block/RoyalSmithingTableBlock.java rename to src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalSmithingTableBlock.java index d1168dd396..1fb80bd2c1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/RoyalSmithingTableBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/RoyalSmithingTableBlock.java @@ -1,4 +1,4 @@ -package dev.dubhe.anvilcraft.block; +package dev.dubhe.anvilcraft.block.workstation.royal; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; import dev.dubhe.anvilcraft.inventory.RoyalSmithingMenu; @@ -21,7 +21,7 @@ public RoyalSmithingTableBlock(Properties properties) { @Override public MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) { return new SimpleMenuProvider( - (i, inventory, player) -> new RoyalSmithingMenu( + (i, inventory, _) -> new RoyalSmithingMenu( i, inventory, ContainerLevelAccess.create(level, pos) diff --git a/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/package-info.java b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/package-info.java new file mode 100644 index 0000000000..9810e266b4 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/block/workstation/royal/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package dev.dubhe.anvilcraft.block.workstation.royal; + +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/client/AnvilCraftClient.java b/src/main/java/dev/dubhe/anvilcraft/client/AnvilCraftClient.java index 61046cdd45..c03dbc44f3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/AnvilCraftClient.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/AnvilCraftClient.java @@ -1,35 +1,40 @@ package dev.dubhe.anvilcraft.client; import dev.anvilcraft.lib.v2.integration.IntegrationHook; +import dev.anvilcraft.lib.v2.rendering.cachedber.renderer.CachedBlockEntityRenderDispatcher; import dev.dubhe.anvilcraft.AnvilCraft; -import dev.dubhe.anvilcraft.client.event.GuiLayerRegistrationEventListener; -import dev.dubhe.anvilcraft.client.init.ModKeyMappings; import dev.dubhe.anvilcraft.client.init.ModModelLayers; -import dev.dubhe.anvilcraft.client.init.ModShaders; import dev.dubhe.anvilcraft.client.init.ModTooltipComponents; import dev.dubhe.anvilcraft.client.particle.PlasmaJetsParticle; -import dev.dubhe.anvilcraft.client.renderer.item.decoration.IonoCraftBackpackDecoration; +import dev.dubhe.anvilcraft.client.renderer.item.decoration.IonocraftBackpackDecoration; +import dev.dubhe.anvilcraft.client.renderer.laser.CachedLaserBlockEntityRenderer; import dev.dubhe.anvilcraft.client.support.InspectionSupport; import dev.dubhe.anvilcraft.client.support.PillSelectorSupport; import dev.dubhe.anvilcraft.config.AnvilCraftClientConfig; import dev.dubhe.anvilcraft.init.ModParticles; +import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModFluids; import dev.dubhe.anvilcraft.init.item.ModItems; -import net.minecraft.client.model.HumanoidModel; -import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.entity.LivingEntity; +import dev.dubhe.anvilcraft.item.armor.IonoCraftBackpackItem; +import net.minecraft.client.model.Model; +import net.minecraft.client.resources.model.EquipmentClientInfo; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.IEventBus; +import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.Mod; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; import net.neoforged.neoforge.client.event.RegisterItemDecorationsEvent; import net.neoforged.neoforge.client.event.RegisterParticleProvidersEvent; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent; +import org.jspecify.annotations.Nullable; @Mod(value = AnvilCraft.MOD_ID, dist = Dist.CLIENT) +@EventBusSubscriber(modid = AnvilCraft.MOD_ID, value = Dist.CLIENT) public class AnvilCraftClient { public static IEventBus modEventBus = null; public static ModContainer modContainer = null; @@ -39,51 +44,68 @@ public class AnvilCraftClient { public AnvilCraftClient(IEventBus modBus, ModContainer container) { modEventBus = modBus; modContainer = container; - modBus.addListener(GuiLayerRegistrationEventListener::onRegister); - modBus.addListener(ModKeyMappings::register); - modBus.addListener(AnvilCraftClient::registerClientExtensions); - modBus.addListener(AnvilCraftClient::registerCustomItemDecorations); - modBus.addListener(AnvilCraftClient::registerParticleProviders); - modBus.addListener(ModShaders::register); - modBus.addListener(ModModelLayers::register); - modBus.addListener(ModModelLayers::createModel); - modBus.addListener(ModTooltipComponents::register); - modBus.addListener(AnvilCraftClient::clientSetup); InspectionSupport.initializeClient(); } + @SubscribeEvent public static void clientSetup(FMLClientSetupEvent event) { IntegrationHook.setModEventBus(modEventBus); IntegrationHook.setModContainer(modContainer); AnvilCraft.getINTEGRATION_MANAGER().loadAllClientIntegrations(); + event.enqueueWork(() -> { + CachedBlockEntityRenderDispatcher.INSTANCE.registerRenderer( + ModBlockEntities.RUBY_LASER.get(), + new CachedLaserBlockEntityRenderer<>() + ); + CachedBlockEntityRenderDispatcher.INSTANCE.registerRenderer( + ModBlockEntities.RUBY_PRISM.get(), + new CachedLaserBlockEntityRenderer<>() + ); + }); } + @SubscribeEvent public static void registerClientExtensions(RegisterClientExtensionsEvent e) { ModFluids.onRegisterFluidType(e); ItemExtensionImpl itemExtensionInstance = new ItemExtensionImpl(); e.registerItem(itemExtensionInstance, ModItems.IONOCRAFT_BACKPACK); } + @SubscribeEvent public static void registerCustomItemDecorations(RegisterItemDecorationsEvent e) { - e.register(ModItems.IONOCRAFT_BACKPACK, new IonoCraftBackpackDecoration()); + e.register(ModItems.IONOCRAFT_BACKPACK, new IonocraftBackpackDecoration()); } + @SubscribeEvent public static void registerParticleProviders(RegisterParticleProvidersEvent e) { e.registerSpriteSet(ModParticles.PLASMA_JETS.get(), PlasmaJetsParticle.Provider::new); } public static class ItemExtensionImpl implements IClientItemExtensions { @Override - public HumanoidModel getHumanoidArmorModel( - LivingEntity livingEntity, - ItemStack itemStack, - EquipmentSlot equipmentSlot, - HumanoidModel original + public Model getHumanoidArmorModel( + ItemStack itemStack, EquipmentClientInfo.LayerType layerType, Model original ) { if (itemStack.is(ModItems.IONOCRAFT_BACKPACK)) { return ModModelLayers.getIonocraftBackpackModel(); } - return IClientItemExtensions.super.getHumanoidArmorModel(livingEntity, itemStack, equipmentSlot, original); + return IClientItemExtensions.super.getHumanoidArmorModel(itemStack, layerType, original); + } + + @Override + public @Nullable Identifier getArmorTexture( + ItemStack itemStack, + EquipmentClientInfo.LayerType type, + EquipmentClientInfo.Layer layer, + Identifier defaultId + ) { + if (itemStack.is(ModItems.IONOCRAFT_BACKPACK)) { + if (IonoCraftBackpackItem.getFlightTime(itemStack) > 0) { + return IonoCraftBackpackItem.TEXTURE; + } + return IonoCraftBackpackItem.TEXTURE_OFF; + } + return IClientItemExtensions.super.getArmorTexture(itemStack, type, layer, defaultId); } } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/ClientBlockEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/ClientBlockEventListener.java index 3b5943b492..648514849f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/ClientBlockEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/ClientBlockEventListener.java @@ -1,18 +1,16 @@ package dev.dubhe.anvilcraft.client.event; +import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.hammer.IHammerRemovable; -import dev.dubhe.anvilcraft.client.gui.screen.AnvilHammerScreen; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.init.item.ModItemTags; -import dev.dubhe.anvilcraft.item.AnvilHammerItem; -import dev.dubhe.anvilcraft.network.HammerUsePacket; +import dev.dubhe.anvilcraft.item.tool.AnvilHammerItem; import dev.dubhe.anvilcraft.util.StateUtil; -import net.minecraft.client.Minecraft; -import net.minecraft.client.player.LocalPlayer; import net.minecraft.tags.BlockTags; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.phys.BlockHitResult; @@ -21,11 +19,8 @@ import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; -import net.neoforged.neoforge.network.PacketDistributor; -import java.util.List; - -@EventBusSubscriber(value = Dist.CLIENT) +@EventBusSubscriber(modid = AnvilCraft.MOD_ID, value = Dist.CLIENT) public class ClientBlockEventListener { /** * 侦听右键方块事件 @@ -57,33 +52,16 @@ private static boolean clientHandle( InteractionHand hand, BlockHitResult hitVec ) { + Level level = event.getLevel(); Property property = AnvilHammerItem.findModifyableProperty(targetBlockState); - LocalPlayer player = Minecraft.getInstance().player; - if (player == null) return false; - if (property != null) { - if (event.getEntity().isShiftKeyDown()) { - PacketDistributor.sendToServer(new HammerUsePacket(event.getPos(), hand, hitVec)); - return false; - } - if (!event.getEntity().getAbilities().mayBuild) return false; - if (!AnvilHammerItem.ableToUseAnvilHammer(event.getLevel(), event.getPos(), event.getEntity())) return false; - List possibleStates = StateUtil.findPossibleStatesForProperty(targetBlockState, property); - if (!possibleStates.isEmpty()) { - Minecraft.getInstance().setScreen( - new AnvilHammerScreen( - event.getPos(), - targetBlockState, - property, - possibleStates, - hand, - hitVec - ) - ); - } - return true; - } else { - PacketDistributor.sendToServer(new HammerUsePacket(event.getPos(), hand, hitVec)); - } - return false; + return WheelLifecycleEventListener.openHammerWheel( + level.getGameTime(), + level, + event.getPos(), + hand, + property, + () -> StateUtil.findPossibleStatesForProperty(targetBlockState, property), + hitVec + ); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/ClientEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/ClientEventListener.java index 5d80ccdc06..6d97be7920 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/ClientEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/ClientEventListener.java @@ -1,22 +1,28 @@ package dev.dubhe.anvilcraft.client.event; import com.mojang.blaze3d.platform.InputConstants; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.sound.SoundHelper; import dev.dubhe.anvilcraft.api.thought.ThoughtManager; import dev.dubhe.anvilcraft.client.AnvilCraftClient; +import dev.dubhe.anvilcraft.client.init.ModAtlasIds; import dev.dubhe.anvilcraft.client.init.ModKeyMappings; +import dev.dubhe.anvilcraft.client.init.ModTextureAtlases; import dev.dubhe.anvilcraft.client.support.AmuletSelectorSupport; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.init.item.ModItems; -import dev.dubhe.anvilcraft.item.AnvilHammerItem; +import dev.dubhe.anvilcraft.item.tool.AnvilHammerItem; import dev.dubhe.anvilcraft.network.UsePillBoxPacket; import dev.dubhe.anvilcraft.util.BlockHighlightUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.resources.model.sprite.AtlasManager; +import net.minecraft.core.Direction; import net.minecraft.world.inventory.Slot; import net.minecraft.world.item.ItemStack; import net.neoforged.api.distmarker.Dist; @@ -26,24 +32,49 @@ import net.neoforged.neoforge.client.event.ClientTickEvent; import net.neoforged.neoforge.client.event.ContainerScreenEvent; import net.neoforged.neoforge.client.event.InputEvent; +import net.neoforged.neoforge.client.event.RegisterTextureAtlasesEvent; import net.neoforged.neoforge.client.event.RenderBlockScreenEffectEvent; -import net.neoforged.neoforge.client.event.RenderLevelStageEvent; +import net.neoforged.neoforge.client.event.RenderItemInFrameEvent; import net.neoforged.neoforge.client.event.RenderTooltipEvent; import net.neoforged.neoforge.client.event.ScreenEvent; +import net.neoforged.neoforge.client.event.SubmitCustomGeometryEvent; @EventBusSubscriber(modid = AnvilCraft.MOD_ID, value = Dist.CLIENT) public class ClientEventListener { @SubscribeEvent - public static void blockHighlight(RenderLevelStageEvent event) { - if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_ENTITIES) return; + public static void on(SubmitCustomGeometryEvent event) { if (BlockHighlightUtil.SUBCHUNKS.isEmpty()) return; ClientLevel level = Minecraft.getInstance().level; if (level == null) return; BlockHighlightUtil.render( level, + event.getSubmitNodeCollector(), Minecraft.getInstance().renderBuffers().bufferSource(), event.getPoseStack(), - event.getCamera() + event.getLevelRenderState().cameraRenderState + ); + } + + @SubscribeEvent + public static void on(RenderItemInFrameEvent event) { + PoseStack poseStack = event.getPoseStack(); + if (!AnvilCraftClient.CONFIG.verticalItemFrame) return; + Direction direction = event.getItemFrameRenderState().direction; + if (direction == Direction.UP) { + poseStack.mulPose(Axis.XP.rotationDegrees(-90.0F)); + } else if (direction == Direction.DOWN) { + poseStack.mulPose(Axis.XP.rotationDegrees(90.0F)); + } + } + + @SubscribeEvent + public static void on(RegisterTextureAtlasesEvent event) { + event.register( + new AtlasManager.AtlasConfig( + ModTextureAtlases.LOCATION_LASER, + ModAtlasIds.LASER, + false + ) ); } @@ -101,7 +132,7 @@ public static void onClientTick(ClientTickEvent.Post event) { Minecraft minecraft = Minecraft.getInstance(); long curTime = minecraft.gui.getGuiTicks(); long deltaTime = curTime - lastThoughtTime; - if (deltaTime > ThoughtManager.getMAX_SECONDS() * 20) { + if (deltaTime > ThoughtManager.getMaxSeconds() * 20) { ThoughtManager.onPostThought(); } } @@ -120,9 +151,9 @@ public static void onMouseScrolled(ScreenEvent.MouseScrolled.Pre event) { } @SubscribeEvent - public static void renderContainerScreenEvent(ContainerScreenEvent.Render.Background event) { + public static void renderContainerScreenEvent(ContainerScreenEvent.Render.Foreground event) { AbstractContainerScreen screen = event.getContainerScreen(); - Slot slot = screen.getSlotUnderMouse(); + Slot slot = screen.getHoveredSlot(); if (slot != null) { ItemStack item = slot.getItem(); if (item.is(ModItems.PILL_BOX)) { @@ -135,7 +166,7 @@ public static void renderContainerScreenEvent(ContainerScreenEvent.Render.Backgr @SubscribeEvent public static void onRenderTooltip(RenderTooltipEvent.Pre event) { - GuiGraphics guiGraphics = event.getGraphics(); + GuiGraphicsExtractor graphics = event.getGraphics(); int x = event.getX(); int y = event.getY(); @@ -143,10 +174,10 @@ public static void onRenderTooltip(RenderTooltipEvent.Pre event) { if (itemStack.is(ModItems.AMULET_BOX)) { event.setY(y + 13); AmuletSelectorSupport.setCurrentHoveringItemStack(itemStack); - AmuletSelectorSupport.render(guiGraphics, x, y); + AmuletSelectorSupport.render(graphics, x, y); } else if (itemStack.is(ModItems.PILL_BOX)) { event.setY(y + 13); - AnvilCraftClient.pillSelectorSupport.render(guiGraphics, x, y); + AnvilCraftClient.pillSelectorSupport.render(graphics, x, y); } else { AmuletSelectorSupport.setCurrentHoveringItemStack(ItemStack.EMPTY); } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/GuiLayerRegistrationEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/GuiLayerRegistrationEventListener.java index 7a89464e89..c5d00af0e0 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/GuiLayerRegistrationEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/GuiLayerRegistrationEventListener.java @@ -4,10 +4,10 @@ import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.tooltip.HudTooltipManager; import dev.dubhe.anvilcraft.client.hud.IonoCraftBackpackHUD; -import dev.dubhe.anvilcraft.item.AnvilHammerItem; +import dev.dubhe.anvilcraft.item.tool.AnvilHammerItem; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.core.BlockPos; import net.minecraft.tags.BlockTags; import net.minecraft.world.InteractionHand; @@ -16,12 +16,17 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.client.event.RegisterGuiLayersEvent; +@EventBusSubscriber(modid = AnvilCraft.MOD_ID, value = Dist.CLIENT) public class GuiLayerRegistrationEventListener { + @SubscribeEvent public static void onRegister(RegisterGuiLayersEvent event) { - event.registerAboveAll(AnvilCraft.of("power"), (guiGraphics, deltaTracker) -> { + event.registerAboveAll(AnvilCraft.of("power"), (graphics, deltaTracker) -> { Minecraft minecraft = Minecraft.getInstance(); if (minecraft.options.hideGui) return; float partialTick = deltaTracker.getGameTimeDeltaPartialTick( @@ -37,7 +42,7 @@ public static void onRegister(RegisterGuiLayersEvent event) { ItemStack handItem = mainHandItem.isEmpty() ? offHandItem : mainHandItem; if (!handItem.isEmpty()) { HudTooltipManager.INSTANCE.renderHandItemHudTooltip( - guiGraphics, + graphics, handItem, partialTick, screenWidth, @@ -57,10 +62,17 @@ public static void onRegister(RegisterGuiLayersEvent event) { BlockState s = minecraft.level.getBlockState(blockPos); if (s.is(BlockTags.AIR)) return; HudTooltipManager.INSTANCE.renderTooltip( - guiGraphics, minecraft.level, blockPos, s, partialTick, screenWidth, screenHeight); + graphics, + minecraft.level, + blockPos, + s, + partialTick, + screenWidth, + screenHeight + ); return; } - HudTooltipManager.INSTANCE.renderTooltip(guiGraphics, e, partialTick, screenWidth, screenHeight); + HudTooltipManager.INSTANCE.renderTooltip(graphics, e, partialTick, screenWidth, screenHeight); } }); @@ -68,8 +80,8 @@ public static void onRegister(RegisterGuiLayersEvent event) { event.registerAboveAll(AnvilCraft.of("ionocraft_backpack"), IonoCraftBackpackHUD::render); } - public static void render(GuiGraphics guiGraphics, DeltaTracker deltaTracker) { - // PoseStack poseStack = guiGraphics.pose(); + public static void render(GuiGraphicsExtractor graphics, DeltaTracker deltaTracker) { + // PoseStack poseStack = graphics.pose(); // Matrix4f matrix4f = poseStack.last().pose(); // Tesselator tesselator = Tesselator.getInstance(); // BufferBuilder bufferBuilder = tesselator.begin( @@ -85,13 +97,13 @@ public static void render(GuiGraphics guiGraphics, DeltaTracker deltaTracker) { // RenderSystem.setShader(ModShaders::getRingShader); // ModShaders.getRingShader() // .safeGetUniform("Center") - // .set(10f * guiScale, 10f * guiScale); + // .set(10F * guiScale, 10F * guiScale); // ModShaders.getRingShader() // .safeGetUniform("FramebufferSize") // .set((float)window.getWidth(),(float) window.getHeight()); // ModShaders.getRingShader() // .safeGetUniform("Radius") - // .set(10f * guiScale); + // .set(10F * guiScale); // RenderSystem.setShaderColor(1, 1, 1, 1); // BufferUploader.drawWithShader(bufferBuilder.build()); } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/HammerEffectRenderEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/HammerEffectRenderEventListener.java index 873be85b78..6f503d0472 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/HammerEffectRenderEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/HammerEffectRenderEventListener.java @@ -1,40 +1,45 @@ package dev.dubhe.anvilcraft.client.event; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.datafixers.util.Pair; +import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.hammer.IHasHammerEffect; +import dev.dubhe.anvilcraft.mixin.accessor.LevelRendererAccessor; import lombok.extern.slf4j.Slf4j; -import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.ModelBlockRenderer; +import net.minecraft.client.renderer.block.BlockModelRenderState; +import net.minecraft.client.renderer.block.dispatch.BlockStateModel; +import net.minecraft.client.renderer.state.level.CameraRenderState; +import net.minecraft.client.renderer.state.level.LevelRenderState; import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; +import net.minecraft.util.RandomSource; +import net.minecraft.util.context.ContextKey; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.client.event.ExtractLevelRenderStateEvent; import net.neoforged.neoforge.client.event.RenderLevelStageEvent; +import net.neoforged.neoforge.client.model.standalone.StandaloneModelKey; +import org.joml.Matrix4f; @Slf4j @EventBusSubscriber(Dist.CLIENT) public class HammerEffectRenderEventListener { - public static final Pair[] DIRECTION_TEXTS; - public static final ModelResourceLocation MODEL = ModelResourceLocation.standalone(AnvilCraft.of("block/axis")); + public static final StandaloneModelKey MODEL = new StandaloneModelKey<>( + () -> "AnvilCraft: Axis Block Model" + ); + private static final ContextKey HAMMER_STATE = new ContextKey<>(AnvilCraft.of("hammer_state")); static { - Pair[] texts = new Pair[Direction.values().length - 2]; + Pair[] texts = Util.cast(new Pair[Direction.values().length - 2]); int idx = 0; for (int i = 0; i < Direction.values().length; i++) { Direction direction = Direction.values()[i]; @@ -46,51 +51,44 @@ public class HammerEffectRenderEventListener { } @SubscribeEvent - public static void onRender(RenderLevelStageEvent event) { - if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_BLOCK_ENTITIES) return; + public static void onExtract(ExtractLevelRenderStateEvent event) { Minecraft mc = Minecraft.getInstance(); if (!(mc.screen instanceof IHasHammerEffect hasHammerEffect)) return; if (!hasHammerEffect.shouldRender()) return; - BlockPos pos = hasHammerEffect.renderingBlockPos(); + BlockModelRenderState model = new BlockModelRenderState(); BlockState state = hasHammerEffect.renderingBlockState(); - RenderType renderType = hasHammerEffect.renderType(); + mc.getModelManager().getBlockStateModelSet().get(state).collectParts( + mc.level, + hasHammerEffect.renderingBlockPos(), + state, + RandomSource.create(), + model.setupModel(new Matrix4f(), false) + ); + event.getRenderState().setRenderData(HammerEffectRenderEventListener.HAMMER_STATE, model); + } + + + // TODO: use custom render type for colored overlay + @SubscribeEvent + public static void onRender(RenderLevelStageEvent.AfterOpaqueFeatures event) { + Minecraft mc = Minecraft.getInstance(); + if (!(mc.screen instanceof IHasHammerEffect hasHammerEffect)) return; + if (!hasHammerEffect.shouldRender()) return; + BlockPos pos = hasHammerEffect.renderingBlockPos(); PoseStack poseStack = event.getPoseStack(); poseStack.pushPose(); - Camera camera = event.getCamera(); - Vec3 cameraPos = camera.getPosition(); + LevelRenderState renderState = event.getLevelRenderState(); + CameraRenderState camera = renderState.cameraRenderState; + Vec3 cameraPos = camera.pos; poseStack.translate( pos.getX() - cameraPos.x - 0.0005, pos.getY() - cameraPos.y - 0.0005, pos.getZ() - cameraPos.z - 0.0005 ); - poseStack.scale(1.001f, 1.001f, 1.001f); - BakedModel model = mc.getBlockRenderer().getBlockModel(state); - ModelBlockRenderer renderer = mc.getBlockRenderer().getModelRenderer(); - MultiBufferSource.BufferSource bufferSource = mc.renderBuffers().bufferSource(); - VertexConsumer vertexConsumer = bufferSource.getBuffer(renderType); - renderer.renderModel( - poseStack.last(), - vertexConsumer, - state, - model, - 1f, - 1f, - 1f, - LightTexture.FULL_BLOCK, - OverlayTexture.NO_OVERLAY - ); - - renderer.renderModel( - poseStack.last(), - vertexConsumer, - state, - mc.getModelManager().getModel(MODEL), - 1f, - 1f, - 1f, - LightTexture.FULL_BRIGHT, - OverlayTexture.NO_OVERLAY - ); + poseStack.scale(1.001F, 1.001F, 1.001F); + BlockModelRenderState model = renderState.getRenderData(HammerEffectRenderEventListener.HAMMER_STATE); + LevelRendererAccessor accessor = Util.cast(event.getLevelRenderer()); + model.submit(poseStack, accessor.getSubmitNodeStorage(), 1, OverlayTexture.NO_OVERLAY, 0); poseStack.popPose(); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/LargeBlockPlacePreviewEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/LargeBlockPlacePreviewEventListener.java index eb72c9d414..087f986bfa 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/LargeBlockPlacePreviewEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/LargeBlockPlacePreviewEventListener.java @@ -1,13 +1,13 @@ package dev.dubhe.anvilcraft.client.event; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import dev.anvilcraft.lib.v2.util.Util; import dev.dubhe.anvilcraft.api.tooltip.TooltipRenderHelper; -import dev.dubhe.anvilcraft.block.item.FlexibleMultiPartBlockItem; -import dev.dubhe.anvilcraft.block.item.SimpleMultiPartBlockItem; import dev.dubhe.anvilcraft.block.multipart.AbstractMultiPartBlock; import dev.dubhe.anvilcraft.block.multipart.FlexibleMultiPartBlock; +import dev.dubhe.anvilcraft.item.block.FlexibleMultiPartBlockItem; +import dev.dubhe.anvilcraft.item.block.SimpleMultiPartBlockItem; import dev.dubhe.anvilcraft.util.SegmentedActuator; import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.objects.ObjectArrayList; @@ -15,8 +15,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.player.LocalPlayer; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.rendertype.RenderTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; @@ -34,7 +33,8 @@ import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.client.event.RenderHighlightEvent; +import net.neoforged.neoforge.client.event.ClientTickEvent; +import net.neoforged.neoforge.client.event.ExtractBlockOutlineRenderStateEvent; import java.util.List; @@ -54,24 +54,15 @@ public class LargeBlockPlacePreviewEventListener { private static List cachedErrorPosList = new ObjectArrayList<>(); private static final SegmentedActuator animationActuator = new SegmentedActuator( - new SegmentedActuator.Task(20, changeBoundColorRed), - new SegmentedActuator.Task(20, changeBoundColorWhite), - new SegmentedActuator.Task(20, changeBoundColorRed), - new SegmentedActuator.Task(20, changeBoundColorWhite) + new SegmentedActuator.Task(2, changeBoundColorRed), + new SegmentedActuator.Task(2, changeBoundColorWhite), + new SegmentedActuator.Task(2, changeBoundColorRed), + new SegmentedActuator.Task(2, changeBoundColorWhite) ); @SubscribeEvent - public static void renderHighlight(RenderHighlightEvent.Block event) { + public static void on(ClientTickEvent.Pre event) { boundColor = 0xffffffff; - Minecraft mc = Minecraft.getInstance(); - ClientLevel level = mc.level; - LocalPlayer player = mc.player; - if (player == null) { - return; - } - if (level == null) { - return; - } if (failBoundCooldown > 0) { failBoundCooldown--; animationActuator.execute(); @@ -79,54 +70,65 @@ public static void renderHighlight(RenderHighlightEvent.Block event) { if (failBoundErrorCooldown > 0) { failBoundErrorCooldown--; } - PoseStack poseStack = event.getPoseStack(); - Vec3 position = event.getCamera().getPosition(); - MultiBufferSource.BufferSource bufferSource = event.getLevelRenderer().renderBuffers.bufferSource(); - BlockHitResult target = event.getTarget(); - Direction direction = target.getDirection(); - BlockPos pos = target.getBlockPos().relative(direction); - VertexConsumer vertexConsumer = bufferSource.getBuffer(RenderType.lines()); - Inventory inventory = player.getInventory(); - ItemStack item = inventory.getItem(inventory.selected); - if (!(item.getItem() instanceof BlockItem)) { - item = player.getItemInHand(InteractionHand.OFF_HAND); - } - if (item.getItem() instanceof BlockItem blockItem) { - if (blockItem.getBlock() instanceof AbstractMultiPartBlock block) { - validateCanRender(item, blockItem, pos); - // Build the actual placement state from the hit result - BlockPlaceContext context = new BlockPlaceContext(player, player.getUsedItemHand(), item, new BlockHitResult( - event.getTarget().getLocation(), - direction, - target.getBlockPos(), - target.isInside() - )); - BlockState state = getPlacementState(block, blockItem, context); - Pair> pair = getShapeAndErrorPosList(level, block, pos, state); - if (!pair.second().isEmpty()) { - if (blockItem instanceof SimpleMultiPartBlockItem simpleMultiPartBlockItem) { - int distance = simpleMultiPartBlockItem.getMaxOffsetDistance(direction); - pos = pos.relative(direction, distance - 1); - } - if (blockItem instanceof FlexibleMultiPartBlockItem flexibleMultiPartBlockItem) { - int distance = flexibleMultiPartBlockItem.getMaxOffsetDistance(state, direction); - pos = pos.relative(direction, distance - 1); + } + + @SubscribeEvent + public static void renderHighlight(ExtractBlockOutlineRenderStateEvent event) { + + event.addCustomRenderer((_, source, pose, _, _) -> { + Minecraft mc = Minecraft.getInstance(); + ClientLevel level = mc.level; + LocalPlayer player = mc.player; + if (player == null) return false; + if (level == null) return false; + Vec3 position = event.getCamera().position(); + BlockHitResult target = event.getHitResult(); + Direction direction = target.getDirection(); + BlockPos pos = target.getBlockPos().relative(direction); + VertexConsumer consumer = source.getBuffer(RenderTypes.lines()); + Inventory inventory = player.getInventory(); + ItemStack item = inventory.getSelectedItem(); + if (!(item.getItem() instanceof BlockItem)) { + item = player.getItemInHand(InteractionHand.OFF_HAND); + } + if (item.getItem() instanceof BlockItem blockItem) { + if (blockItem.getBlock() instanceof AbstractMultiPartBlock block) { + validateCanRender(item, blockItem, pos); + // Build the actual placement state from the hit result + BlockPlaceContext context = new BlockPlaceContext(player, player.getUsedItemHand(), item, new BlockHitResult( + target.getLocation(), + direction, + target.getBlockPos(), + target.isInside() + )); + BlockState placementState = getPlacementState(block, blockItem, context); + Pair> pair = getShapeAndErrorPosList(level, block, pos, placementState); + if (!pair.second().isEmpty()) { + if (blockItem instanceof SimpleMultiPartBlockItem simpleMultiPartBlockItem) { + int distance = simpleMultiPartBlockItem.getMaxOffsetDistance(direction); + pos = pos.relative(direction, distance - 1); + } + if (blockItem instanceof FlexibleMultiPartBlockItem flexibleMultiPartBlockItem) { + int distance = flexibleMultiPartBlockItem.getMaxOffsetDistance(placementState, direction); + pos = pos.relative(direction, distance - 1); + } + pair = getShapeAndErrorPosList(level, block, pos, placementState); } - pair = getShapeAndErrorPosList(level, block, pos, state); + TooltipRenderHelper.renderOutline( + pose, + consumer, + position.x, + position.y, + position.z, + pos, + pair.first(), + boundColor + ); + renderErrorBound(pose, consumer, event.getCamera()); } - TooltipRenderHelper.renderOutline( - poseStack, - vertexConsumer, - position.x, - position.y, - position.z, - pos, - pair.first(), - boundColor - ); - renderErrorBound(poseStack, vertexConsumer, event.getCamera()); } - } + return false; + }); } private static Pair> getShapeAndErrorPosList( @@ -138,7 +140,7 @@ private static Pair> getShapeAndErrorPosList( VoxelShape combinedShape = Shapes.empty(); List errorBlockPosList = new ObjectArrayList<>(); for (Enum part : block.getParts()) { - BlockPos offset = pos.offset(block.offsetFrom(state, cast(part))); + BlockPos offset = pos.offset(block.offsetFrom(state, Util.cast(part))); BlockState blockState = level.getBlockState(offset); if (!blockState.canBeReplaced() || level.isOutsideBuildHeight(offset)) { errorBlockPosList.add(offset); @@ -172,30 +174,22 @@ private static void validateCanRender( } private static void renderErrorBound(PoseStack poseStack, VertexConsumer vertexConsumer, Camera camera) { - Vec3 position = camera.getPosition(); - if (failBoundErrorCooldown > 0) { - RenderSystem.disableDepthTest(); - RenderSystem.depthMask(false); - for (BlockPos blockPos : cachedErrorPosList) { - TooltipRenderHelper.renderOutline( - poseStack, - vertexConsumer, - position.x, - position.y, - position.z, - blockPos, - Shapes.block(), - 0xffff0000 - ); - } - RenderSystem.depthMask(true); - RenderSystem.enableDepthTest(); + Vec3 position = camera.position(); + if (failBoundErrorCooldown <= 0) { + return; + } + for (BlockPos blockPos : cachedErrorPosList) { + TooltipRenderHelper.renderOutline( + poseStack, + vertexConsumer, + position.x, + position.y, + position.z, + blockPos, + Shapes.block(), + 0xffff0000 + ); } - } - - @SuppressWarnings("unchecked") - private static

> P cast(Enum e) { - return (P) e; } private static BlockState getPlacementState(AbstractMultiPartBlock block, BlockItem blockItem, BlockPlaceContext context) { @@ -210,12 +204,12 @@ private static BlockState getPlacementState(AbstractMultiPartBlock block, Blo } public static void startFailBoundCooldown() { - failBoundCooldown = 80; + failBoundCooldown = 8; animationActuator.reset(); } public static void startFailBoundErrorCooldown(List errorPosList) { - failBoundErrorCooldown = 60; + failBoundErrorCooldown = 6; cachedErrorPosList = new ObjectArrayList<>(errorPosList); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/RegisterAdditionalEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/RegisterAdditionalEventListener.java index 77aff35a27..e4f39385ee 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/RegisterAdditionalEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/RegisterAdditionalEventListener.java @@ -1,11 +1,23 @@ package dev.dubhe.anvilcraft.client.event; import dev.dubhe.anvilcraft.AnvilCraft; -import net.minecraft.client.resources.model.ModelResourceLocation; +import dev.dubhe.anvilcraft.client.renderer.blockentity.AdvancedComparatorRenderer; +import dev.dubhe.anvilcraft.client.renderer.blockentity.CFARenderer; +import dev.dubhe.anvilcraft.client.renderer.blockentity.ChargeCollectorRenderer; +import dev.dubhe.anvilcraft.client.renderer.blockentity.CreativeGeneratorRenderer; +import dev.dubhe.anvilcraft.client.renderer.blockentity.FishTankRenderer; +import dev.dubhe.anvilcraft.client.renderer.blockentity.HeatCollectorRenderer; +import dev.dubhe.anvilcraft.client.renderer.blockentity.HeliostatsRenderer; +import dev.dubhe.anvilcraft.client.renderer.blockentity.VoidEnergyCollectorRenderer; +import dev.dubhe.anvilcraft.client.renderer.item.CrabClawItemInHandRenderer; +import dev.dubhe.anvilcraft.client.renderer.item.SpectralSlingshotRenderer; +import dev.dubhe.anvilcraft.client.renderer.item.SpectralWeaponLauncherRenderer; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.client.event.ModelEvent; +import net.neoforged.neoforge.client.event.RegisterSpecialModelRendererEvent; +import net.neoforged.neoforge.client.model.standalone.SimpleUnbakedStandaloneModel; @EventBusSubscriber(modid = AnvilCraft.MOD_ID, value = Dist.CLIENT) public class RegisterAdditionalEventListener { @@ -14,20 +26,68 @@ public class RegisterAdditionalEventListener { * 注册模型 */ @SubscribeEvent - public static void registerModels(ModelEvent.RegisterAdditional event) { - event.register(ModelResourceLocation.standalone(AnvilCraft.of("item/crab_claw_holding_block"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("item/crab_claw_holding_item"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/heliostats_head"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/heliostats_head_sunflower"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/creative_generator_cube"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/charge_collector_cube"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/heat_collector_cube"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/void_energy_collector_head"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/laser"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/axis"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/advanced_comparator_indicator"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/celestial_forging_anvil_ring_1"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/celestial_forging_anvil_ring_2"))); - event.register(ModelResourceLocation.standalone(AnvilCraft.of("block/celestial_forging_anvil_ring_3"))); + public static void registerModels(ModelEvent.RegisterStandalone event) { + event.register( + CrabClawItemInHandRenderer.HOLDING_BLOCK, + SimpleUnbakedStandaloneModel.quadCollection(AnvilCraft.of("item/crab_claw_holding_block")) + ); + event.register( + CrabClawItemInHandRenderer.HOLDING_ITEM, + SimpleUnbakedStandaloneModel.quadCollection(AnvilCraft.of("item/crab_claw_holding_item")) + ); + event.register( + HeliostatsRenderer.HEAD, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/heliostats_head")) + ); + event.register( + HeliostatsRenderer.HEAD_SUNFLOWER, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/heliostats_head_sunflower")) + ); + event.register( + CreativeGeneratorRenderer.CUBE, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/creative_generator_cube")) + ); + event.register( + ChargeCollectorRenderer.CUBE, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/charge_collector_cube")) + ); + event.register( + HeatCollectorRenderer.CUBE, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/heat_collector_cube")) + ); + event.register( + VoidEnergyCollectorRenderer.HEAD, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/void_energy_collector_head")) + ); + event.register( + HammerEffectRenderEventListener.MODEL, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/axis")) + ); + event.register( + AdvancedComparatorRenderer.INDICATOR, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/advanced_comparator_indicator")) + ); + event.register( + CFARenderer.RING1, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/celestial_forging_anvil_ring_1")) + ); + event.register( + CFARenderer.RING2, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/celestial_forging_anvil_ring_2")) + ); + event.register( + CFARenderer.RING3, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/celestial_forging_anvil_ring_3")) + ); + event.register( + FishTankRenderer.FIRE, + SimpleUnbakedStandaloneModel.blockStateModel(AnvilCraft.of("block/oil_cauldron_fire4")) + ); + } + + @SubscribeEvent + public static void registerSpecialRenderers(RegisterSpecialModelRendererEvent event) { + event.register(AnvilCraft.of("spectral_slingshot"), SpectralSlingshotRenderer.Unbaked.CODEC); + event.register(AnvilCraft.of("spectral_weapon_launcher"), SpectralWeaponLauncherRenderer.Unbaked.CODEC); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/RenderEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/RenderEventListener.java deleted file mode 100644 index 814af2d50e..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/RenderEventListener.java +++ /dev/null @@ -1,128 +0,0 @@ -package dev.dubhe.anvilcraft.client.event; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.anvilcraft.lib.v2.util.Util; -import dev.dubhe.anvilcraft.api.tooltip.HudTooltipManager; -import dev.dubhe.anvilcraft.api.tooltip.TooltipRenderHelper; -import dev.dubhe.anvilcraft.client.support.InspectionSupport; -import dev.dubhe.anvilcraft.client.support.PowerGridSupport; -import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.item.AnvilHammerItem; -import net.minecraft.client.DeltaTracker; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LevelRenderer; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.client.event.RenderLevelStageEvent; - -import java.util.Optional; - -@EventBusSubscriber(value = Dist.CLIENT) -public class RenderEventListener { - - @SubscribeEvent - public static void onRenderInspection(RenderLevelStageEvent event) { - if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_BLOCK_ENTITIES) return; - Vec3 camera = event.getCamera().getPosition(); - PoseStack poseStack = event.getPoseStack(); - DeltaTracker deltaTracker = event.getPartialTick(); - LevelRenderer renderer = event.getLevelRenderer(); - InspectionSupport.INSTANCE.onRenderInspectionAction( - poseStack, - renderer, - camera, - deltaTracker - ); - } - - @SubscribeEvent - public static void onRender(RenderLevelStageEvent event) { - if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_BLOCK_ENTITIES) return; - if (Minecraft.getInstance().options.hideGui) return; - Entity entity = event.getCamera().getEntity(); - PoseStack pose = event.getPoseStack(); - MultiBufferSource.BufferSource bufferSource = - event.getLevelRenderer().renderBuffers.bufferSource(); - - Vec3 vec3 = event.getCamera().getPosition(); - double camX = vec3.x(); - double camY = vec3.y(); - double camZ = vec3.z(); - PowerGridSupport.renderTransmitterLine(pose, bufferSource, vec3); - - if (!(entity instanceof LivingEntity livingEntity)) return; - ItemStack mainHandItem = livingEntity.getItemInHand(InteractionHand.MAIN_HAND); - ItemStack offHandItem = livingEntity.getItemInHand(InteractionHand.OFF_HAND); - ItemStack handItem = mainHandItem.isEmpty() ? offHandItem : mainHandItem; - VertexConsumer vertexConsumer3 = bufferSource.getBuffer(RenderType.lines()); - if (!handItem.isEmpty()) { - HudTooltipManager.INSTANCE.renderHandItemLevelTooltip(handItem, pose, vertexConsumer3, camX, camY, camZ); - } - - if (!(entity instanceof Player player)) return; - Optional hitResult = Util.castSafely(Minecraft.getInstance().hitResult, BlockHitResult.class); - hitResult.ifPresent(hit -> renderDragonRodOutline(pose, hit, vertexConsumer3, camX, camY, camZ, handItem)); - if (!AnvilHammerItem.shouldRenderEffect(player)) return; - PowerGridSupport.render(pose, bufferSource, vec3); - hitResult.ifPresent(hit -> renderAffectRange(pose, hit, vertexConsumer3, camX, camY, camZ)); - } - - private static void renderAffectRange( - PoseStack pose, BlockHitResult hit, VertexConsumer vertexConsumer3, - double camX, double camY, double camZ - ) { - BlockPos blockPos = hit.getBlockPos(); - if (Minecraft.getInstance().level == null) return; - BlockEntity e = Minecraft.getInstance().level.getBlockEntity(blockPos); - if (e == null) return; - HudTooltipManager.INSTANCE.renderAffectRange(e, pose, vertexConsumer3, camX, camY, camZ); - } - - private static void renderDragonRodOutline( - PoseStack pose, BlockHitResult hitResult, VertexConsumer consumer, double camX, double camY, double camZ, ItemStack handItem - ) { - if (handItem.has(ModComponents.DEVOUR_RANGE)) { - int range = handItem.getOrDefault(ModComponents.DEVOUR_RANGE, -1); - if (range == -1) return; - int half = (range - 1) / 2; - - if (hitResult.miss) return; - - BlockPos pos = hitResult.getBlockPos(); - VoxelShape willDevourShape; - switch (hitResult.getDirection()) { - case DOWN, UP -> { - willDevourShape = Shapes.create(0, 0, 0, range, 1, range); - pos = pos.relative(Direction.NORTH, half).relative(Direction.WEST, half); - } - case NORTH, SOUTH -> { - willDevourShape = Shapes.create(0, 0, 0, range, range, 1); - pos = pos.relative(Direction.WEST, half).relative(Direction.DOWN, half); - } - case WEST, EAST -> { - willDevourShape = Shapes.create(0, 0, 0, 1, range, range); - pos = pos.relative(Direction.NORTH, half).relative(Direction.DOWN, half); - } - default -> willDevourShape = Shapes.block(); - } - - TooltipRenderHelper.renderOutline(pose, consumer, camX, camY, camZ, pos, willDevourShape, 0xFFFFFFFE); - } - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/SubmitGeometryEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/SubmitGeometryEventListener.java new file mode 100644 index 0000000000..422d15f351 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/SubmitGeometryEventListener.java @@ -0,0 +1,132 @@ +package dev.dubhe.anvilcraft.client.event; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import dev.dubhe.anvilcraft.api.tooltip.HudTooltipManager; +import dev.dubhe.anvilcraft.api.tooltip.TooltipRenderHelper; +import dev.dubhe.anvilcraft.client.support.InspectionSupport; +import dev.dubhe.anvilcraft.client.support.PowerGridSupport; +import dev.dubhe.anvilcraft.init.item.ModComponents; +import dev.dubhe.anvilcraft.item.property.component.DevourRange; +import dev.dubhe.anvilcraft.item.tool.AnvilHammerItem; +import net.minecraft.client.DeltaTracker; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.SubmitNodeCollector; +import net.minecraft.client.renderer.rendertype.RenderTypes; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.client.event.SubmitCustomGeometryEvent; + +@EventBusSubscriber(value = Dist.CLIENT) +public class SubmitGeometryEventListener { + + @SubscribeEvent + public static void on(SubmitCustomGeometryEvent event) { + Vec3 camera = event.getLevelRenderState().cameraRenderState.pos; + PoseStack poseStack = event.getPoseStack(); + DeltaTracker deltaTracker = Minecraft.getInstance().getDeltaTracker(); + SubmitNodeCollector nodeCollector = event.getSubmitNodeCollector(); + // Inspection + InspectionSupport.INSTANCE.onRenderInspectionAction( + poseStack, + nodeCollector, + camera, + deltaTracker + ); + + if (Minecraft.getInstance().options.hideGui) return; + if (!(Minecraft.getInstance().getCameraEntity() instanceof Player player)) return; + + double camX = camera.x(); + double camY = camera.y(); + double camZ = camera.z(); + + ItemStack mainHandItem = player.getItemInHand(InteractionHand.MAIN_HAND); + ItemStack offHandItem = player.getItemInHand(InteractionHand.OFF_HAND); + ItemStack handItem = mainHandItem.isEmpty() ? offHandItem : mainHandItem; + + if (!handItem.isEmpty()) { + nodeCollector.submitCustomGeometry(poseStack, RenderTypes.lines(), (pose, buffer) -> { + PoseStack poses = new PoseStack(); + poses.pushPose(); + poses.last().set(pose); + HudTooltipManager.INSTANCE.submitHandItemInWorldTooltip(handItem, poses, buffer, camX, camY, camZ); + poses.popPose(); + }); + } + + HitResult hitResult = Minecraft.getInstance().hitResult; + if (hitResult instanceof BlockHitResult blockHitResult) { + nodeCollector.submitCustomGeometry(poseStack, RenderTypes.lines(), ((pose, buffer) -> { + if (AnvilHammerItem.shouldRenderEffect(player)) { + renderAffectRange(poseStack, blockHitResult, buffer, camX, camY, camZ); + } + renderDragonRodOutline(pose, blockHitResult, buffer, camX, camY, camZ, handItem); + })); + + } + + + submitPowerGridLines(poseStack, nodeCollector, camera); + } + + private static void submitPowerGridLines(PoseStack poseStack, SubmitNodeCollector nodeCollector, Vec3 camera) { + PowerGridSupport.submitPowerGridBounds(poseStack, nodeCollector, camera); + PowerGridSupport.submitEnhancedTransmitterLine(camera); + PowerGridSupport.submitTransmitterLine(poseStack, nodeCollector, camera); + } + + private static void renderAffectRange( + PoseStack pose, BlockHitResult hit, VertexConsumer vertexConsumer3, + double camX, double camY, double camZ + ) { + BlockPos blockPos = hit.getBlockPos(); + if (Minecraft.getInstance().level == null) return; + BlockEntity e = Minecraft.getInstance().level.getBlockEntity(blockPos); + if (e == null) return; + HudTooltipManager.INSTANCE.renderAffectRange(e, pose, vertexConsumer3, camX, camY, camZ); + } + + private static void renderDragonRodOutline( + PoseStack.Pose pose, BlockHitResult hitResult, VertexConsumer consumer, double camX, double camY, double camZ, ItemStack handItem + ) { + if (handItem.has(ModComponents.DEVOUR_RANGE)) { + int range = handItem.getOrDefault(ModComponents.DEVOUR_RANGE, DevourRange.THREE).getRange(); + int half = (range - 1) / 2; + + if (hitResult.miss) return; + + BlockPos pos = hitResult.getBlockPos(); + VoxelShape willDevourShape; + switch (hitResult.getDirection()) { + case DOWN, UP -> { + willDevourShape = Shapes.create(0, 0, 0, range, 1, range); + pos = pos.relative(Direction.NORTH, half).relative(Direction.WEST, half); + } + case NORTH, SOUTH -> { + willDevourShape = Shapes.create(0, 0, 0, range, range, 1); + pos = pos.relative(Direction.WEST, half).relative(Direction.DOWN, half); + } + case WEST, EAST -> { + willDevourShape = Shapes.create(0, 0, 0, 1, range, range); + pos = pos.relative(Direction.NORTH, half).relative(Direction.DOWN, half); + } + default -> willDevourShape = Shapes.block(); + } + + TooltipRenderHelper.renderOutline(pose, consumer, camX, camY, camZ, pos, willDevourShape, 0xFFFFFFFE); + } + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/WheelLifecycleEventListener.java b/src/main/java/dev/dubhe/anvilcraft/client/event/WheelLifecycleEventListener.java index 60b8b04615..050a6c2efa 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/WheelLifecycleEventListener.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/WheelLifecycleEventListener.java @@ -1,43 +1,67 @@ package dev.dubhe.anvilcraft.client.event; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; +import dev.anvilcraft.lib.v2.rendering.gui.GuiRenderExtras; +import dev.anvilcraft.lib.v2.util.Util; +import dev.anvilcraft.lib.v2.wheel.api.WheelEntryAction; import dev.anvilcraft.lib.v2.wheel.api.WheelMenuBuilder; import dev.anvilcraft.lib.v2.wheel.api.WheelMenuModel; import dev.anvilcraft.lib.v2.wheel.client.input.WheelScreenController; import dev.dubhe.anvilcraft.AnvilCraft; +import dev.dubhe.anvilcraft.block.multipart.FlexibleMultiPartBlock; import dev.dubhe.anvilcraft.client.init.ModKeyMappings; import dev.dubhe.anvilcraft.init.item.ModComponents; -import dev.dubhe.anvilcraft.item.MultitoolItem; -import dev.dubhe.anvilcraft.item.ResonatorItem; import dev.dubhe.anvilcraft.item.property.component.MultiphaseRef; +import dev.dubhe.anvilcraft.item.tool.AnvilHammerItem; +import dev.dubhe.anvilcraft.item.tool.MultitoolItem; +import dev.dubhe.anvilcraft.item.tool.MultitoolMode; +import dev.dubhe.anvilcraft.item.tool.ResonateMode; +import dev.dubhe.anvilcraft.item.tool.ResonatorItem; +import dev.dubhe.anvilcraft.network.HammerChangeBlockPacket; +import dev.dubhe.anvilcraft.network.HammerChangeFlexibleMultiPartBlockPacket; +import dev.dubhe.anvilcraft.network.HammerUsePacket; import dev.dubhe.anvilcraft.network.SwitchMultitoolModePacket; import dev.dubhe.anvilcraft.network.SwitchResonateModePacket; import dev.dubhe.anvilcraft.network.multiple.MultiphasePackets; import dev.dubhe.anvilcraft.saved.multiphase.Multiphase; import net.minecraft.client.Minecraft; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.player.LocalPlayer; -import net.minecraft.core.component.DataComponents; +import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.component.CustomModelData; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec2; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.client.event.ClientTickEvent; import net.neoforged.neoforge.client.event.InputEvent; -import net.neoforged.neoforge.network.PacketDistributor; +import net.neoforged.neoforge.client.network.ClientPacketDistributor; +import org.jspecify.annotations.Nullable; import org.lwjgl.glfw.GLFW; import java.util.Comparator; +import java.util.List; import java.util.Optional; -import javax.annotation.Nullable; +import java.util.function.Supplier; @SuppressWarnings({"OptionalUsedAsFieldOrParameterType", "OptionalAssignedToNull"}) @EventBusSubscriber(modid = AnvilCraft.MOD_ID, value = Dist.CLIENT) public class WheelLifecycleEventListener { private static final WheelScreenController CONTROLLER = new WheelScreenController(); + private static long hammerKeyTime = -1L; + private static boolean hammerKeyWasDown = false; + private static Optional hammerWheelCache = null; + private static long multiphaseKeyTime = -1L; private static boolean multiphaseKeyWasDown = false; private static Optional multiphaseWheelCache = null; @@ -61,6 +85,49 @@ public static void onClientTick(ClientTickEvent.Post event) { WheelLifecycleEventListener.openMultitoolWheel(gameTime); } + public static boolean openHammerWheel( + long gameTime, + Level level, + BlockPos targetPos, + InteractionHand hand, + @Nullable Property property, + Supplier> possibleStatesFac, + BlockHitResult hitVec + ) { + if (WheelLifecycleEventListener.hammerKeyTime <= 0) return false; + if (property == null) { + ClientPacketDistributor.sendToServer(new HammerUsePacket(targetPos, hand, hitVec)); + return false; + } + if (gameTime - WheelLifecycleEventListener.hammerKeyTime <= 4) { + ClientPacketDistributor.sendToServer(new HammerUsePacket(targetPos, hand, hitVec)); + return false; + } + Minecraft client = Minecraft.getInstance(); + LocalPlayer player = client.player; + if (player == null) return false; + if (WheelLifecycleEventListener.hammerWheelCache == null) { + if (player.isShiftKeyDown()) { + ClientPacketDistributor.sendToServer(new HammerUsePacket(targetPos, hand, hitVec)); + return false; + } + if (!player.getAbilities().mayBuild) return false; + if (!AnvilHammerItem.ableToUseAnvilHammer(level, targetPos, player)) return false; + List possibleStates = possibleStatesFac.get(); + if (possibleStates.isEmpty()) return true; + WheelLifecycleEventListener.hammerWheelCache = Optional.ofNullable(WheelLifecycleEventListener.getHammerWheel( + targetPos, + property, + possibleStates, + client.getCameraEntity().getRotationVector() + )); + } + if (WheelLifecycleEventListener.hammerWheelCache.isEmpty()) return false; + CONTROLLER.onHoldKeyPressed(WheelLifecycleEventListener.hammerWheelCache.get()); + WheelLifecycleEventListener.hammerKeyWasDown = true; + return true; + } + private static void openMultiphaseWheel(long gameTime) { if ( WheelLifecycleEventListener.multiphaseKeyTime > 0 @@ -78,7 +145,7 @@ private static void openMultiphaseWheel(long gameTime) { if (!stack.has(ModComponents.MULTIPHASE)) return; MultiphaseRef ref = stack.get(ModComponents.MULTIPHASE); if (ref.isEmpty()) return; - PacketDistributor.sendToServer(new MultiphasePackets.SingleSync(stack.get(ModComponents.MULTIPHASE).id().get())); + ClientPacketDistributor.sendToServer(new MultiphasePackets.SingleSync(stack.get(ModComponents.MULTIPHASE).id().get())); WheelLifecycleEventListener.multiphaseWheelCache = Optional.ofNullable( WheelLifecycleEventListener.getMultiphaseWheel(hand, stack, ref.toMultiphase()) ); @@ -90,55 +157,108 @@ private static void openMultiphaseWheel(long gameTime) { } private static void openResonatorWheel(long gameTime) { - if ( - WheelLifecycleEventListener.resonatorKeyTime > 0 - && gameTime - WheelLifecycleEventListener.resonatorKeyTime > 4 - ) { - if (WheelLifecycleEventListener.resonatorWheelCache == null) { - LocalPlayer player = Minecraft.getInstance().player; - if (player == null) return; - InteractionHand hand = InteractionHand.MAIN_HAND; - ItemStack stack = player.getMainHandItem(); - if (!(stack.getItem() instanceof ResonatorItem)) { - hand = InteractionHand.OFF_HAND; - stack = player.getOffhandItem(); - } - if (!(stack.getItem() instanceof ResonatorItem)) return; - WheelLifecycleEventListener.resonatorWheelCache = Optional.ofNullable( - WheelLifecycleEventListener.getResonatorWheel(hand, stack) - ); + if (WheelLifecycleEventListener.resonatorKeyTime <= 0) return; + if (WheelLifecycleEventListener.resonatorWheelCache == null) { + LocalPlayer player = Minecraft.getInstance().player; + if (player == null) return; + InteractionHand hand = InteractionHand.MAIN_HAND; + ItemStack stack = player.getMainHandItem(); + if (!(stack.getItem() instanceof ResonatorItem)) { + hand = InteractionHand.OFF_HAND; + stack = player.getOffhandItem(); } + if (!(stack.getItem() instanceof ResonatorItem)) return; + WheelLifecycleEventListener.resonatorWheelCache = Optional.ofNullable( + WheelLifecycleEventListener.getResonatorWheel(hand, stack) + ); + } + if (gameTime - WheelLifecycleEventListener.resonatorKeyTime > 4) { if (WheelLifecycleEventListener.resonatorWheelCache.isEmpty()) return; CONTROLLER.onHoldKeyPressed(WheelLifecycleEventListener.resonatorWheelCache.get()); WheelLifecycleEventListener.resonatorKeyWasDown = true; + } else { + if (WheelLifecycleEventListener.resonatorWheelCache.isEmpty()) return; + CONTROLLER.openTap(WheelLifecycleEventListener.resonatorWheelCache.get()); } } private static void openMultitoolWheel(long gameTime) { - if ( - WheelLifecycleEventListener.multitoolKeyTime > 0 - && gameTime - WheelLifecycleEventListener.multitoolKeyTime > 4 - ) { - if (WheelLifecycleEventListener.multitoolWheelCache == null) { - LocalPlayer player = Minecraft.getInstance().player; - if (player == null) return; - InteractionHand hand = InteractionHand.MAIN_HAND; - ItemStack stack = player.getMainHandItem(); - if (!(stack.getItem() instanceof MultitoolItem)) { - hand = InteractionHand.OFF_HAND; - stack = player.getOffhandItem(); - } - if (!(stack.getItem() instanceof MultitoolItem)) return; - WheelLifecycleEventListener.multitoolWheelCache = Optional.ofNullable( - WheelLifecycleEventListener.getMultitoolWheel(hand, stack) - ); + if (WheelLifecycleEventListener.multitoolKeyTime <= 0) return; + if (WheelLifecycleEventListener.multitoolWheelCache == null) { + LocalPlayer player = Minecraft.getInstance().player; + if (player == null) return; + InteractionHand hand = InteractionHand.MAIN_HAND; + ItemStack stack = player.getMainHandItem(); + if (!(stack.getItem() instanceof MultitoolItem)) { + hand = InteractionHand.OFF_HAND; + stack = player.getOffhandItem(); } + if (!(stack.getItem() instanceof MultitoolItem)) return; + WheelLifecycleEventListener.multitoolWheelCache = Optional.ofNullable( + WheelLifecycleEventListener.getMultitoolWheel(hand, stack) + ); + } + if (gameTime - WheelLifecycleEventListener.multitoolKeyTime > 4) { if (WheelLifecycleEventListener.multitoolWheelCache.isEmpty()) return; CONTROLLER.onHoldKeyPressed(WheelLifecycleEventListener.multitoolWheelCache.get()); WheelLifecycleEventListener.multitoolKeyWasDown = true; + } else { + if (WheelLifecycleEventListener.multitoolWheelCache.isEmpty()) return; + CONTROLLER.openTap(WheelLifecycleEventListener.multitoolWheelCache.get()); } } + private static @Nullable WheelMenuModel getHammerWheel( + BlockPos targetPos, + Property property, + List possibleStates, + Vec2 camera + ) { + WheelMenuBuilder builder = WheelMenuBuilder.create().slotsPerPage(possibleStates.size()); + possibleStates + .forEach(state -> { + String name = property.getName(Util.cast(state.getValue(property))); + WheelEntryAction action; + if (state.getBlock() instanceof FlexibleMultiPartBlock) { + if (state.hasProperty(BlockStateProperties.FACING)) { + action = _ -> ClientPacketDistributor.sendToServer(new HammerChangeFlexibleMultiPartBlockPacket( + targetPos, + state, + state.getValue(BlockStateProperties.FACING) + )); + } else if (state.hasProperty(BlockStateProperties.HORIZONTAL_FACING)) { + action = _ -> ClientPacketDistributor.sendToServer(new HammerChangeFlexibleMultiPartBlockPacket( + targetPos, + state, + state.getValue(BlockStateProperties.HORIZONTAL_FACING) + )); + } else { + action = _ -> { + }; + } + } else { + action = _ -> ClientPacketDistributor.sendToServer(new HammerChangeBlockPacket( + targetPos, + state + )); + } + builder.action( + name, + Component.literal(name), + (graphics, _, _, _) -> { + PoseStack pose = new PoseStack(); + pose.translate(0.5F, 0.5F, 0.5F); + pose.mulPose(Axis.XP.rotationDegrees(camera.x)); + pose.mulPose(Axis.YP.rotationDegrees(camera.y + 180F)); + pose.translate(-0.5F, -0.5F, -0.5F); + GuiRenderExtras.tessellateBlock(graphics, state, 0, 0, pose); + }, + action + ); + }); + return builder.build(); + } + private static @Nullable WheelMenuModel getMultiphaseWheel(InteractionHand hand, ItemStack holding, Multiphase multiphase) { WheelMenuBuilder builder = WheelMenuBuilder.create().slotsPerPage(multiphase.phases().size()); multiphase.phases().stream() @@ -146,12 +266,12 @@ private static void openMultitoolWheel(long gameTime) { .forEachOrdered(phase -> builder.action( "" + Multiphase.DEFAULT_SUFFIXES.charAt(phase.index()), phase.phaseName(), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); phase.applyToStack(copied); - graphics.renderItem(copied, 2, 2, 9910597); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new MultiphasePackets.ChangePhase(hand, ctx.slotIndex()) ) )); @@ -164,60 +284,60 @@ private static void openMultitoolWheel(long gameTime) { .action( "auto", Component.translatable("screen.anvilcraft.resonator.auto"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(ResonatorItem.AUTO_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.RESONATE_MODE, ResonateMode.AUTO); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchResonateModePacket(hand, ctx.slotIndex()) ) ) .action( "axe", Component.translatable("screen.anvilcraft.resonator.axe"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(ResonatorItem.AXE_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.RESONATE_MODE, ResonateMode.AXE); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchResonateModePacket(hand, ctx.slotIndex()) ) ) .action( "shovel", Component.translatable("screen.anvilcraft.resonator.shovel"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(ResonatorItem.SHOVEL_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.RESONATE_MODE, ResonateMode.SHOVEL); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchResonateModePacket(hand, ctx.slotIndex()) ) ) .action( "hoe", Component.translatable("screen.anvilcraft.resonator.hoe"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(ResonatorItem.HOE_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.RESONATE_MODE, ResonateMode.HOE); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchResonateModePacket(hand, ctx.slotIndex()) ) ) .action( "pickaxe", Component.translatable("screen.anvilcraft.resonator.pickaxe"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(ResonatorItem.PICKAXE_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.RESONATE_MODE, ResonateMode.PICKAXE); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchResonateModePacket(hand, ctx.slotIndex()) ) ) @@ -230,108 +350,108 @@ private static void openMultitoolWheel(long gameTime) { .action( "all", Component.translatable("screen.anvilcraft.multitool.all"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.ALL_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.ALL); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "shears", Component.translatable("item.minecraft.shears"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.SHEARS_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.SHEARS); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "flint_and_steel", Component.translatable("item.minecraft.flint_and_steel"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.FLINT_AND_STEEL_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.FLINT_AND_STEEL); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "brush", Component.translatable("item.minecraft.brush"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.BRUSH_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.BRUSH); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "spyglass", Component.translatable("item.minecraft.spyglass"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.SPYGLASS_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.SPYGLASS); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "magnet", Component.translatable("item.anvilcraft.magnet"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.MAGNET_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.MAGNET); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "fishing_rod", Component.translatable("item.minecraft.fishing_rod"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.FISHING_ROD_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.FISHING_ROD); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "carrot_on_a_stick", Component.translatable("item.minecraft.carrot_on_a_stick"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.CARROT_ON_A_STICK_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.CARROT_ON_A_STICK); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) .action( "warped_fungus_on_a_stick", Component.translatable("item.minecraft.warped_fungus_on_a_stick"), - (graphics, pose, width, height) -> { + (graphics, _, _, _) -> { ItemStack copied = holding.copy(); - copied.set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData(MultitoolItem.WARPED_FUNGUS_ON_A_STICK_MODE)); - graphics.renderItem(copied, 2, 2, 9910597); + copied.set(ModComponents.MULTITOOL_MODE, MultitoolMode.WARPED_FUNGUS_ON_A_STICK); + graphics.item(copied, 2, 2, 9910597); }, - ctx -> PacketDistributor.sendToServer( + ctx -> ClientPacketDistributor.sendToServer( new SwitchMultitoolModePacket(hand, ctx.slotIndex()) ) ) @@ -342,10 +462,10 @@ private static void openMultitoolWheel(long gameTime) { public static void onKeyInput(InputEvent.Key event) { Minecraft client = Minecraft.getInstance(); if (client.player == null) return; - if (ModKeyMappings.SWITCH_PHASE.get().matches(event.getKey(), event.getScanCode())) { + if (ModKeyMappings.SWITCH_PHASE.get().matches(event.getKeyEvent())) { WheelLifecycleEventListener.processMultiphasePress(client, event.getAction()); } - if (ModKeyMappings.SWITCH_TOOL_MODE.get().matches(event.getKey(), event.getScanCode())) { + if (ModKeyMappings.SWITCH_TOOL_MODE.get().matches(event.getKeyEvent())) { WheelLifecycleEventListener.processResonatorPress(client, event.getAction()); WheelLifecycleEventListener.processMultitoolPress(client, event.getAction()); } @@ -355,22 +475,44 @@ public static void onKeyInput(InputEvent.Key event) { public static void onKeyInput(InputEvent.MouseButton.Post event) { Minecraft client = Minecraft.getInstance(); if (client.player == null) return; - if (ModKeyMappings.SWITCH_PHASE.get().matchesMouse(event.getButton())) { + if (client.options.keyUse.matchesMouse(new MouseButtonEvent(0, 0, event.getMouseButtonInfo()))) { + WheelLifecycleEventListener.processHammerPress(client, event.getAction()); + } + if (ModKeyMappings.SWITCH_PHASE.get().matchesMouse(new MouseButtonEvent(0, 0, event.getMouseButtonInfo()))) { WheelLifecycleEventListener.processMultiphasePress(client, event.getAction()); } - if (ModKeyMappings.SWITCH_TOOL_MODE.get().matchesMouse(event.getButton())) { + if (ModKeyMappings.SWITCH_TOOL_MODE.get().matchesMouse(new MouseButtonEvent(0, 0, event.getMouseButtonInfo()))) { WheelLifecycleEventListener.processResonatorPress(client, event.getAction()); WheelLifecycleEventListener.processMultitoolPress(client, event.getAction()); } } + private static void processHammerPress(Minecraft client, int action) { + if (client.level == null) return; + if (action == GLFW.GLFW_RELEASE) { + if (WheelLifecycleEventListener.hammerKeyWasDown) { + CONTROLLER.onHoldKeyReleased(); + } + WheelLifecycleEventListener.hammerKeyWasDown = false; + WheelLifecycleEventListener.hammerKeyTime = -1L; + WheelLifecycleEventListener.hammerWheelCache = null; + return; + } + if (Minecraft.getInstance().screen != null) return; + if (action == GLFW.GLFW_PRESS) { + if (!WheelLifecycleEventListener.hammerKeyWasDown) { + WheelLifecycleEventListener.hammerKeyTime = client.level.getGameTime(); + } + } + } + private static void processMultiphasePress(Minecraft client, int action) { if (client.level == null) return; if (action == GLFW.GLFW_RELEASE) { if (WheelLifecycleEventListener.multiphaseKeyWasDown) { CONTROLLER.onHoldKeyReleased(); } else { - PacketDistributor.sendToServer(new MultiphasePackets.SwitchPhase()); + ClientPacketDistributor.sendToServer(new MultiphasePackets.SwitchPhase()); } WheelLifecycleEventListener.multiphaseKeyWasDown = false; WheelLifecycleEventListener.multiphaseKeyTime = -1L; diff --git a/src/main/java/dev/dubhe/anvilcraft/client/event/package-info.java b/src/main/java/dev/dubhe/anvilcraft/client/event/package-info.java index b52c27c6f6..5297ce4e9a 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/event/package-info.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/event/package-info.java @@ -1,7 +1,4 @@ -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault +@NullMarked package dev.dubhe.anvilcraft.client.event; -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; +import org.jspecify.annotations.NullMarked; diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/CycleFilterModeButton.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/CycleFilterModeButton.java index 1b8202d4e9..febfadde88 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/CycleFilterModeButton.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/CycleFilterModeButton.java @@ -1,20 +1,20 @@ package dev.dubhe.anvilcraft.client.gui.component; -import com.mojang.blaze3d.systems.RenderSystem; +import dev.dubhe.anvilcraft.block.entity.ItemDetectorBlockEntity.Mode; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner; +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 java.util.List; import java.util.Locale; -import java.util.Optional; import java.util.function.Supplier; -import static dev.dubhe.anvilcraft.block.entity.ItemDetectorBlockEntity.Mode; - public class CycleFilterModeButton extends Button { private final Supplier filterMode; @@ -28,12 +28,31 @@ public CycleFilterModeButton(int x, int y, OnPress onPress, Supplier filte } @Override - public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - super.render(guiGraphics, mouseX, mouseY, partialTick); + protected void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { if (this.isHovered()) { - guiGraphics.renderTooltip( - Minecraft.getInstance().font, List.of(getMessage()), Optional.empty(), mouseX, mouseY); + graphics.tooltip( + Minecraft.getInstance().font, + List.of(ClientTooltipComponent.create(this.getMessage().getVisualOrderText())), + mouseX, + mouseY, + DefaultTooltipPositioner.INSTANCE, + null + ); } + Identifier location = this.filterMode.get().buttonTexture; + this.renderTexture( + graphics, + location, + this.getX(), + this.getY(), + 0, + 0, + 16, + this.width, + this.height, + 16, + 32 + ); } @Override @@ -42,15 +61,9 @@ public Component getMessage() { Component.translatable("screen.anvilcraft.button.filter_mode_" + this.filterMode.get().name().toLowerCase(Locale.ROOT))); } - @Override - public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - ResourceLocation location = this.filterMode.get().buttonTexture; - this.renderTexture(guiGraphics, location, this.getX(), this.getY(), 0, 0, 16, this.width, this.height, 16, 32); - } - public void renderTexture( - GuiGraphics guiGraphics, - ResourceLocation texture, + GuiGraphicsExtractor graphics, + Identifier texture, int x, int y, int puOffset, @@ -65,8 +78,7 @@ public void renderTexture( if (this.isHovered()) { i += textureDifference; } - RenderSystem.enableDepthTest(); - guiGraphics.blit(texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); + graphics.blit(RenderPipelines.GUI_TEXTURED, texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); } public Mode cycle() { diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/EnableFilterButton.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/EnableFilterButton.java index e0e640e961..cbeb1f607d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/EnableFilterButton.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/EnableFilterButton.java @@ -1,17 +1,18 @@ package dev.dubhe.anvilcraft.client.gui.component; -import com.mojang.blaze3d.systems.RenderSystem; import dev.dubhe.anvilcraft.constant.SharedTextures; import lombok.Getter; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner; +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 java.util.List; -import java.util.Optional; import java.util.function.Supplier; @Getter @@ -21,17 +22,24 @@ public class EnableFilterButton extends Button { "screen.anvilcraft.button.record", Component.translatable("screen.anvilcraft.button.off")); public EnableFilterButton(int x, int y, OnPress onPress, Supplier filterEnabled) { - super(x, y, 16, 16, defaultMessage, onPress, (var) -> defaultMessage); + super(x, y, 16, 16, defaultMessage, onPress, var -> defaultMessage); this.filterEnabled = filterEnabled; } @Override - public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - super.render(guiGraphics, mouseX, mouseY, partialTick); + protected void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { if (this.isHovered()) { - guiGraphics.renderTooltip( - Minecraft.getInstance().font, List.of(getMessage()), Optional.empty(), mouseX, mouseY); + graphics.tooltip( + Minecraft.getInstance().font, + List.of(ClientTooltipComponent.create(getMessage().getVisualOrderText())), + mouseX, + mouseY, + DefaultTooltipPositioner.INSTANCE, + null + ); } + Identifier location = this.filterEnabled.get() ? SharedTextures.BUTTON_YES : SharedTextures.BUTTON_NO; + this.renderTexture(graphics, location, this.getX(), this.getY(), 0, 0, 16, this.width, this.height, 16, 32); } /** @@ -44,15 +52,9 @@ public void flush() { "screen.anvilcraft.button." + (this.getFilterEnabled().get() ? "on" : "off")))); } - @Override - public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - ResourceLocation location = this.filterEnabled.get() ? SharedTextures.BUTTON_YES : SharedTextures.BUTTON_NO; - this.renderTexture(guiGraphics, location, this.getX(), this.getY(), 0, 0, 16, this.width, this.height, 16, 32); - } - public void renderTexture( - GuiGraphics guiGraphics, - ResourceLocation texture, + GuiGraphicsExtractor graphics, + Identifier texture, int x, int y, int puOffset, @@ -67,8 +69,7 @@ public void renderTexture( if (this.isHovered()) { i += textureDifference; } - RenderSystem.enableDepthTest(); - guiGraphics.blit(texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); + graphics.blit(RenderPipelines.GUI_TEXTURED, texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); } public boolean next() { diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/ItemCollectorButton.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/ItemCollectorButton.java index 3f112496d8..01574211b5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/ItemCollectorButton.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/ItemCollectorButton.java @@ -1,32 +1,32 @@ package dev.dubhe.anvilcraft.client.gui.component; -import com.mojang.blaze3d.systems.RenderSystem; import dev.dubhe.anvilcraft.constant.SharedTextures; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; public class ItemCollectorButton extends Button { - private final ResourceLocation texture; + private final Identifier texture; /** * 物品收集器 screen 的加减按钮 */ public ItemCollectorButton(int x, int y, String variant, OnPress onPress) { - super(x, y, 10, 10, Component.literal(""), onPress, (var) -> Component.literal(variant)); - texture = SharedTextures.textureGui("machine/item_collector/button_%s".formatted(variant)); + super(x, y, 10, 10, Component.literal(""), onPress, var -> Component.literal(variant)); + this.texture = SharedTextures.textureGui("machine/item_collector/button_%s".formatted(variant)); } @Override - public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - this.renderTexture(guiGraphics, texture, this.getX(), this.getY(), 0, 0, 10, this.width, this.height, 10, 20); + protected void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { + this.renderTexture(graphics, this.texture, this.getX(), this.getY(), 0, 0, 10, this.width, this.height, 10, 20); } public void renderTexture( - GuiGraphics guiGraphics, - ResourceLocation texture, + GuiGraphicsExtractor graphics, + Identifier texture, int x, int y, int puOffset, @@ -41,7 +41,6 @@ public void renderTexture( if (this.isHovered()) { i += textureDifference; } - RenderSystem.enableDepthTest(); - guiGraphics.blit(texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); + graphics.blit(RenderPipelines.GUI_TEXTURED, texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/OutputDirectionButton.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/OutputDirectionButton.java index 4190c952eb..189e12a80c 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/OutputDirectionButton.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/OutputDirectionButton.java @@ -1,18 +1,19 @@ package dev.dubhe.anvilcraft.client.gui.component; -import com.mojang.blaze3d.systems.RenderSystem; import dev.dubhe.anvilcraft.constant.SharedTextures; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import java.util.ArrayList; import java.util.List; -import java.util.Optional; public class OutputDirectionButton extends Button { private Direction direction; @@ -21,7 +22,7 @@ public class OutputDirectionButton extends Button { "screen.anvilcraft.button.direction", Component.translatable("screen.anvilcraft.button.direction.up")); public OutputDirectionButton(int x, int y, OnPress onPress, Direction direction) { - super(x, y, 16, 16, DEFAULT_MESSAGE, onPress, (var) -> DEFAULT_MESSAGE); + super(x, y, 16, 16, DEFAULT_MESSAGE, onPress, var -> DEFAULT_MESSAGE); this.direction = direction; } @@ -38,16 +39,24 @@ public OutputDirectionButton skip(Direction direction) { } @Override - public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - super.render(guiGraphics, mouseX, mouseY, partialTick); + protected void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { if (this.isHovered()) { - List components = new ArrayList<>() { + List components = new ArrayList<>() { { - this.add(getMessage()); + this.add(ClientTooltipComponent.create(getMessage().getVisualOrderText())); } }; - guiGraphics.renderTooltip(Minecraft.getInstance().font, components, Optional.empty(), mouseX, mouseY); + graphics.tooltip(Minecraft.getInstance().font, components, mouseX, mouseY, DefaultTooltipPositioner.INSTANCE, null); } + Identifier location = switch (this.direction) { + case UP -> SharedTextures.BUTTON_U; + case EAST -> SharedTextures.BUTTON_E; + case WEST -> SharedTextures.BUTTON_W; + case SOUTH -> SharedTextures.BUTTON_S; + case NORTH -> SharedTextures.BUTTON_N; + default -> SharedTextures.BUTTON_D; + }; + this.renderTexture(graphics, location, this.getX(), this.getY(), 0, 0, 16, this.width, this.height, 16, 32); } /** @@ -62,22 +71,9 @@ public void setDirection(Direction direction) { Component.translatable("screen.anvilcraft.button.direction." + this.direction.getName()))); } - @Override - public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - ResourceLocation location = switch (direction) { - case UP -> SharedTextures.BUTTON_U; - case EAST -> SharedTextures.BUTTON_E; - case WEST -> SharedTextures.BUTTON_W; - case SOUTH -> SharedTextures.BUTTON_S; - case NORTH -> SharedTextures.BUTTON_N; - default -> SharedTextures.BUTTON_D; - }; - this.renderTexture(guiGraphics, location, this.getX(), this.getY(), 0, 0, 16, this.width, this.height, 16, 32); - } - public void renderTexture( - GuiGraphics guiGraphics, - ResourceLocation texture, + GuiGraphicsExtractor graphics, + Identifier texture, int x, int y, int puOffset, @@ -92,8 +88,7 @@ public void renderTexture( if (this.isHovered()) { i += textureDifference; } - RenderSystem.enableDepthTest(); - guiGraphics.blit(texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); + graphics.blit(RenderPipelines.GUI_TEXTURED, texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); } public Direction next() { @@ -115,6 +110,6 @@ public Direction next(Direction direction) { case NORTH -> Direction.UP; default -> Direction.EAST; }; - return this.skip.contains(direction1) ? next(direction1) : direction1; + return this.skip.contains(direction1) ? this.next(direction1) : direction1; } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SilencerButton.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SilencerButton.java index e5f2cb8ef6..7380da91a0 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SilencerButton.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SilencerButton.java @@ -1,17 +1,19 @@ package dev.dubhe.anvilcraft.client.gui.component; -import com.mojang.blaze3d.systems.RenderSystem; import dev.dubhe.anvilcraft.client.gui.screen.ActiveSilencerScreen; import dev.dubhe.anvilcraft.constant.SharedTextures; import lombok.Getter; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentUtils; import net.minecraft.network.chat.Style; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.util.Mth; import java.util.ArrayList; @@ -19,7 +21,7 @@ import java.util.regex.Pattern; public class SilencerButton extends Button { - private final ResourceLocation texture; + private final Identifier texture; @Getter private final int index; @@ -46,7 +48,7 @@ public SilencerButton( 10, Component.literal(""), onPress, - (var) -> parent.getSoundTextAt(index, variant).copy() + var -> parent.getSoundTextAt(index, variant).copy() ); this.height = 15; this.width = 112; @@ -57,11 +59,11 @@ public SilencerButton( } @Override - public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + protected void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { String searchText = this.parent.getFilterText(); - ResourceLocation soundId = this.parent.getSoundIdAt(this.index, this.variant); + Identifier soundId = this.parent.getSoundIdAt(this.index, this.variant); if (soundId == null) return; - this.renderTexture(guiGraphics, this.texture, this.getX(), this.getY(), 0, 0, 15, this.width, this.height, 112, 30); + this.renderTexture(graphics, this.texture, this.getX(), this.getY(), 0, 0, 15, this.width, this.height, 112, 30); Component message; if (searchText.startsWith("#") || searchText.startsWith("~")) { message = this.parent.getSoundTextAt(this.index, this.variant); @@ -73,16 +75,16 @@ public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float ChatFormatting.YELLOW); } this.setMessage(message); - this.renderString(guiGraphics, Minecraft.getInstance().font, 16777215 | Mth.ceil(this.alpha * 255.0F) << 24); + int color = 16777215 | Mth.ceil(this.alpha * 255.0F) << 24; + Font font = Minecraft.getInstance().font; + graphics.centeredText(font, message, this.getX() + this.width / 2, this.getY() + 3, color); if (this.isHovered()) { Component soundIdText = highlighted( soundId.toString(), searchText.replaceFirst("#", ""), ChatFormatting.GRAY, ChatFormatting.YELLOW); - guiGraphics.renderTooltip( - Minecraft.getInstance().font, - List.of(message.getVisualOrderText(), soundIdText.getVisualOrderText()), - mouseX, - mouseY - ); + this.parent.setTooltipComponents(List.of( + ClientTooltipComponent.create(message.getVisualOrderText()), + ClientTooltipComponent.create(soundIdText.getVisualOrderText()) + )); } } @@ -90,6 +92,7 @@ private static Component highlighted( String original, String hightlighted, ChatFormatting originalFormatting, + @SuppressWarnings("SameParameterValue") ChatFormatting highlightFormatting ) { try { @@ -108,8 +111,8 @@ private static Component highlighted( } public void renderTexture( - GuiGraphics guiGraphics, - ResourceLocation texture, + GuiGraphicsExtractor graphics, + Identifier texture, int x, int y, int puOffset, @@ -124,7 +127,6 @@ public void renderTexture( if (this.isHovered()) { i += textureDifference; } - RenderSystem.enableDepthTest(); - guiGraphics.blit(texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); + graphics.blit(RenderPipelines.GUI_TEXTURED, texture, x, y, puOffset, i, width, height, textureWidth, textureHeight); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/Slider.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/Slider.java deleted file mode 100644 index 4dc89fa95c..0000000000 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/Slider.java +++ /dev/null @@ -1,208 +0,0 @@ -package dev.dubhe.anvilcraft.client.gui.component; - -import dev.dubhe.anvilcraft.constant.SharedTextures; -import dev.dubhe.anvilcraft.util.Callback; -import lombok.Getter; -import lombok.Setter; -import net.minecraft.Util; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.components.AbstractWidget; -import net.minecraft.client.gui.narration.NarrationElementOutput; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; - -import java.util.function.Function; - -public class Slider extends AbstractWidget { - public static final ResourceLocation SLIDER = SharedTextures.textureGui("misc/slider_like/slider"); - - @Setter - @Getter - private int min; - - @Setter - @Getter - private int max; - - private double proportion; - private final int posX; - private final int posY; - private final int length; - private final Function valueFunction; - private final Function argFunction; - public final Callback callback; - protected final int tooltipMsDelay = 1; - private long hoverOrFocusedStartTime; - private boolean wasHoveredOrFocused; - private boolean scroll = false; - public static boolean scrolling = false; - - /** - * 构建一个Slider - * - * @param x X - * @param y Y - * @param min 最小值 - * @param max 最大值 - * @param length 长度 - * @param callback 更新回调 - */ - public Slider( - int x, - int y, - int min, - int max, - int length, - Function valueFunction, - Function argFunction, - Callback callback - ) { - super(x, y, length, 8, Component.literal("Slider")); - this.posX = x; - this.posY = y; - this.min = min; - this.max = max; - this.length = length; - this.valueFunction = valueFunction; - this.argFunction = argFunction; - this.callback = callback; - } - - public Slider( - int x, - int y, - int min, - int max, - int length, - Callback callback - ) { - this( - x, - y, - min, - max, - length, - i -> Slider.defaultValueFunction(i, min, max), - i -> Slider.defaultArgFunction(i, min, max), - callback - ); - } - - public double getProportion() { - return Math.clamp(this.proportion, 0.0, 1.0); - } - - public void setProportion(double proportion) { - this.proportion = Math.clamp(proportion, 0.0, 1.0); - } - - public static double defaultValueFunction(double proportion, int min, int max) { - return (max - min) * proportion + min; - } - - public static double defaultArgFunction(int value, int min, int max) { - if (value == 0) return Math.clamp(((double) value - min) / (max - min), 0.0, 1.0); - double v = (Math.log(Math.abs(value)) / Math.log(2)) + 1; - return Math.clamp(((value >= 0 ? v : -v) - min) / (max - min), 0.0, 1.0); - } - - public void setValue(int value) { - this.proportion = this.argFunction.apply(value); - } - - public int getValue() { - int v = (int) Math.round(this.valueFunction.apply(this.proportion)); - if (v == 0) return 0; - return v > 0 ? (int) Math.pow(2, Math.abs(v - 1)) : -(int) Math.pow(2, Math.abs(v + 1)); - } - - public int getAddValue(int value) { - if (Math.abs(value) < 4) return 1; - return (int) Math.pow(2, Math.floor(Math.log(Math.abs(value)) / Math.log(2)) - 2); - } - - /** - * 设置 Value 并更新 - */ - public void setValueWithUpdate(int value) { - this.setValue(value); - this.update(); - } - - private void update() { - if (this.callback != null) this.callback.onValueChange(this.getValue()); - } - - @SuppressWarnings("deprecation") - public void onClick(double mouseX, double mouseY) { - super.onClick(mouseX, mouseY); - if (this.isInSlider(mouseX, mouseY)) { - scrolling = true; - return; - } - scrolling = false; - } - - public void onDrag(double mouseX, double mouseY, double dragX, double dragY) { - super.onDrag(mouseX, mouseY, dragX, dragY); - if (scrolling || this.scroll) { - if (scrolling) { - this.scroll = true; - scrolling = false; - } - double offset = (mouseX - 8 - this.posX) / this.length; - this.setProportion(offset); - } - if (this.scroll) this.update(); - } - - public void onReleased() { - if (this.scroll) this.update(); - this.scroll = false; - scrolling = false; - } - - protected boolean isInSlider(double mouseX, double mouseY) { - int offsetX = posX + (int) (length * this.getProportion()); - return mouseX > offsetX && mouseX < offsetX + 16 && mouseY > posY && mouseY < posY + 8; - } - - @Override - public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - if (!this.visible) return; - this.isHovered = this.isInSlider(mouseX, mouseY); - this.renderWidget(guiGraphics, mouseX, mouseY, partialTick); - this.updateTooltip(); - } - - @Override - protected void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - double prop = this.getProportion(); - int offsetX = posX + (int) ((length) * prop); - guiGraphics.blit(SLIDER, offsetX, posY, 0, this.isHovered || this.scroll ? 8 : 0, 16, 8, 16, 16); - } - - @Override - protected void updateWidgetNarration(NarrationElementOutput narrationElementOutput) { - } - - private void updateTooltip() { - if (this.getTooltip() == null) return; - boolean bl = this.isHovered - || this.isFocused() - && Minecraft.getInstance().getLastInputType().isKeyboard(); - if (bl != this.wasHoveredOrFocused) { - if (bl) this.hoverOrFocusedStartTime = Util.getMillis(); - this.wasHoveredOrFocused = bl; - } - Screen screen; - if (bl - && Util.getMillis() - this.hoverOrFocusedStartTime > (long) this.tooltipMsDelay - && (screen = Minecraft.getInstance().screen) != null) { - screen.setTooltipForNextRenderPass(this.getTooltip(), DefaultTooltipPositioner.INSTANCE, this.isFocused()); - } - } -} diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SliderWidget.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SliderWidget.java new file mode 100644 index 0000000000..21c3c63311 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SliderWidget.java @@ -0,0 +1,181 @@ +package dev.dubhe.anvilcraft.client.gui.component; + +import dev.dubhe.anvilcraft.constant.SharedTextures; +import dev.dubhe.anvilcraft.util.Callback; +import lombok.Getter; +import lombok.Setter; +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.narration.NarrationElementOutput; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; + +import java.util.function.Function; + +public class SliderWidget extends AbstractWidget { + public static final Identifier SLIDER = SharedTextures.textureGui("misc/slider_like/slider"); + + @Setter + @Getter + private int min; + + @Setter + @Getter + private int max; + + private double proportion; + private final int posX; + private final int posY; + private final int length; + private final Function valueFunction; + private final Function argFunction; + public final Callback callback; + private boolean scroll = false; + public static boolean scrolling = false; + + /** + * 构建一个Slider + * + * @param x X + * @param y Y + * @param min 最小值 + * @param max 最大值 + * @param length 长度 + * @param callback 更新回调 + */ + public SliderWidget( + int x, + int y, + int min, + int max, + int length, + Function valueFunction, + Function argFunction, + Callback callback + ) { + super(x, y, length, 8, Component.literal("Slider")); + this.posX = x; + this.posY = y; + this.min = min; + this.max = max; + this.length = length; + this.valueFunction = valueFunction; + this.argFunction = argFunction; + this.callback = callback; + } + + public SliderWidget( + int x, + int y, + int min, + int max, + int length, + Callback callback + ) { + this( + x, + y, + min, + max, + length, + i -> SliderWidget.defaultValueFunction(i, min, max), + i -> SliderWidget.defaultArgFunction(i, min, max), + callback + ); + } + + public double getProportion() { + return Math.clamp(this.proportion, 0.0, 1.0); + } + + public void setProportion(double proportion) { + this.proportion = Math.clamp(proportion, 0.0, 1.0); + } + + public static double defaultValueFunction(double proportion, int min, int max) { + return (max - min) * proportion + min; + } + + public static double defaultArgFunction(int value, int min, int max) { + if (value == 0) return Math.clamp(((double) value - min) / (max - min), 0.0, 1.0); + double v = (Math.log(Math.abs(value)) / Math.log(2)) + 1; + return Math.clamp(((value >= 0 ? v : -v) - min) / (max - min), 0.0, 1.0); + } + + public void setValue(int value) { + this.proportion = this.argFunction.apply(value); + } + + public int getValue() { + int v = (int) Math.round(this.valueFunction.apply(this.proportion)); + if (v == 0) return 0; + return v > 0 ? (int) Math.pow(2, Math.abs(v - 1)) : -(int) Math.pow(2, Math.abs(v + 1)); + } + + public int getAddValue(int value) { + if (Math.abs(value) < 4) return 1; + return (int) Math.pow(2, Math.floor(Math.log(Math.abs(value)) / Math.log(2)) - 2); + } + + /** + * 设置 Value 并更新 + */ + public void setValueWithUpdate(int value) { + this.setValue(value); + this.update(); + } + + private void update() { + if (this.callback != null) this.callback.onValueChange(this.getValue()); + } + + @Override + public void onClick(MouseButtonEvent event, boolean doubleClick) { + super.onClick(event, doubleClick); + if (this.isInSlider(event.x(), event.y())) { + scrolling = true; + return; + } + scrolling = false; + } + + @Override + public void onDrag(MouseButtonEvent event, double dx, double dy) { + super.onDrag(event, dx, dy); + if (scrolling || this.scroll) { + if (scrolling) { + this.scroll = true; + scrolling = false; + } + double offset = (event.x() - 8 - this.posX) / this.length; + this.setProportion(offset); + } + if (this.scroll) this.update(); + } + + public void onReleased() { + if (this.scroll) this.update(); + this.scroll = false; + scrolling = false; + } + + protected boolean isInSlider(double mouseX, double mouseY) { + int offsetX = this.posX + (int) (this.length * this.getProportion()); + return mouseX > offsetX && mouseX < offsetX + 16 && mouseY > this.posY && mouseY < this.posY + 8; + } + + @Override + protected void extractWidgetRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) { + if (!this.visible) return; + this.isHovered = this.isInSlider(mouseX, mouseY); + double prop = this.getProportion(); + int offsetX = this.posX + (int) ((this.length) * prop); + graphics.blit(RenderPipelines.GUI_TEXTURED, SLIDER, offsetX, this.posY, 0, this.isHovered || this.scroll ? 8 : 0, 16, 8, 16, 16); + } + + @Override + protected void updateWidgetNarration(NarrationElementOutput narrationElementOutput) { + } +} diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SwitchableButton.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SwitchableButton.java index dd4a388ab1..7a0f153669 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SwitchableButton.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/component/SwitchableButton.java @@ -1,19 +1,19 @@ package dev.dubhe.anvilcraft.client.gui.component; -import com.google.common.collect.Collections2; import dev.anvilcraft.lib.v2.util.MathUtil; import lombok.Getter; import lombok.Setter; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import java.util.ArrayList; -import java.util.Collection; import java.util.List; -import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; @@ -21,64 +21,70 @@ public class SwitchableButton extends Button { public static final Button.OnPress DO_NOTHING = btn -> { }; - private final List