From 6326612ca86465c3adfa6ec9197614b241ad51ec Mon Sep 17 00:00:00 2001 From: bconlon Date: Mon, 24 Aug 2026 18:38:30 -0700 Subject: [PATCH] refactor: use neo datamap for stripping wood --- .../neoforge/data_maps/block/strippables.json | 85 +++++++++++++++++++ .../aetherii/block/AetherIIBlocks.java | 40 +-------- .../data/generators/AetherIIDataMapData.java | 30 +++++++ 3 files changed, 116 insertions(+), 39 deletions(-) create mode 100644 src/generated/resources/data/neoforge/data_maps/block/strippables.json diff --git a/src/generated/resources/data/neoforge/data_maps/block/strippables.json b/src/generated/resources/data/neoforge/data_maps/block/strippables.json new file mode 100644 index 0000000000..21918b00f5 --- /dev/null +++ b/src/generated/resources/data/neoforge/data_maps/block/strippables.json @@ -0,0 +1,85 @@ +{ + "values": { + "aether_ii:amberoot_deposit": { + "stripped_block": "aether_ii:stripped_amberoot_log" + }, + "aether_ii:amberoot_log": { + "stripped_block": "aether_ii:stripped_amberoot_log" + }, + "aether_ii:amberoot_trunk": { + "stripped_block": "aether_ii:stripped_amberoot_trunk" + }, + "aether_ii:amberoot_wood": { + "stripped_block": "aether_ii:stripped_amberoot_wood" + }, + "aether_ii:greatroot_log": { + "stripped_block": "aether_ii:stripped_greatroot_log" + }, + "aether_ii:greatroot_trunk": { + "stripped_block": "aether_ii:stripped_greatroot_trunk" + }, + "aether_ii:greatroot_wood": { + "stripped_block": "aether_ii:stripped_greatroot_wood" + }, + "aether_ii:guardian_log": { + "stripped_block": "aether_ii:stripped_guardian_log" + }, + "aether_ii:guardian_log_slab": { + "stripped_block": "aether_ii:stripped_guardian_log_slab" + }, + "aether_ii:guardian_trunk": { + "stripped_block": "aether_ii:stripped_guardian_trunk" + }, + "aether_ii:guardian_wood": { + "stripped_block": "aether_ii:stripped_guardian_wood" + }, + "aether_ii:guardian_wood_slab": { + "stripped_block": "aether_ii:stripped_guardian_wood_slab" + }, + "aether_ii:infected_log": { + "stripped_block": "aether_ii:stripped_infected_log" + }, + "aether_ii:infected_log_slab": { + "stripped_block": "aether_ii:stripped_infected_log_slab" + }, + "aether_ii:infected_trunk": { + "stripped_block": "aether_ii:stripped_infected_trunk" + }, + "aether_ii:infected_wood": { + "stripped_block": "aether_ii:stripped_infected_wood" + }, + "aether_ii:infected_wood_slab": { + "stripped_block": "aether_ii:stripped_infected_wood_slab" + }, + "aether_ii:mossy_wisproot_log": { + "stripped_block": "aether_ii:wisproot_log" + }, + "aether_ii:mossy_wisproot_log_base": { + "stripped_block": "aether_ii:wisproot_log" + }, + "aether_ii:mossy_wisproot_trunk": { + "stripped_block": "aether_ii:wisproot_trunk" + }, + "aether_ii:mossy_wisproot_wood": { + "stripped_block": "aether_ii:wisproot_wood" + }, + "aether_ii:skyroot_log": { + "stripped_block": "aether_ii:stripped_skyroot_log" + }, + "aether_ii:skyroot_trunk": { + "stripped_block": "aether_ii:stripped_skyroot_trunk" + }, + "aether_ii:skyroot_wood": { + "stripped_block": "aether_ii:stripped_skyroot_wood" + }, + "aether_ii:wisproot_log": { + "stripped_block": "aether_ii:stripped_wisproot_log" + }, + "aether_ii:wisproot_trunk": { + "stripped_block": "aether_ii:stripped_wisproot_trunk" + }, + "aether_ii:wisproot_wood": { + "stripped_block": "aether_ii:stripped_wisproot_wood" + } + } +} \ No newline at end of file diff --git a/src/main/java/com/aetherteam/aetherii/block/AetherIIBlocks.java b/src/main/java/com/aetherteam/aetherii/block/AetherIIBlocks.java index cb7805f813..1666156a8b 100644 --- a/src/main/java/com/aetherteam/aetherii/block/AetherIIBlocks.java +++ b/src/main/java/com/aetherteam/aetherii/block/AetherIIBlocks.java @@ -1135,39 +1135,6 @@ public static void registerFluidInteractions() { )); } - /** - * Blocks able to be flattened with {@link ItemAbilities#AXE_STRIP}, and the equivalent result block. - */ - public static final Map>, Supplier>> STRIPPABLES = new ImmutableMap.Builder>, Supplier>>() - .put(() -> AetherIIBlocks.SKYROOT_LOG, () -> AetherIIBlocks.STRIPPED_SKYROOT_LOG) - .put(() -> AetherIIBlocks.SKYROOT_WOOD, () -> AetherIIBlocks.STRIPPED_SKYROOT_WOOD) - .put(() -> AetherIIBlocks.SKYROOT_TRUNK, () -> AetherIIBlocks.STRIPPED_SKYROOT_TRUNK) - .put(() -> AetherIIBlocks.GREATROOT_LOG, () -> AetherIIBlocks.STRIPPED_GREATROOT_LOG) - .put(() -> AetherIIBlocks.GREATROOT_WOOD, () -> AetherIIBlocks.STRIPPED_GREATROOT_WOOD) - .put(() -> AetherIIBlocks.GREATROOT_TRUNK, () -> AetherIIBlocks.STRIPPED_GREATROOT_TRUNK) - .put(() -> AetherIIBlocks.WISPROOT_LOG, () -> AetherIIBlocks.STRIPPED_WISPROOT_LOG) - .put(() -> AetherIIBlocks.WISPROOT_WOOD, () -> AetherIIBlocks.STRIPPED_WISPROOT_WOOD) - .put(() -> AetherIIBlocks.WISPROOT_TRUNK, () -> AetherIIBlocks.STRIPPED_WISPROOT_TRUNK) - .put(() -> AetherIIBlocks.MOSSY_WISPROOT_LOG, () -> AetherIIBlocks.WISPROOT_LOG) - .put(() -> AetherIIBlocks.MOSSY_WISPROOT_WOOD, () -> AetherIIBlocks.WISPROOT_WOOD) - .put(() -> AetherIIBlocks.MOSSY_WISPROOT_TRUNK, () -> AetherIIBlocks.WISPROOT_TRUNK) - .put(() -> AetherIIBlocks.MOSSY_WISPROOT_LOG_BASE, () -> AetherIIBlocks.WISPROOT_LOG) - .put(() -> AetherIIBlocks.AMBEROOT_LOG, () -> AetherIIBlocks.STRIPPED_AMBEROOT_LOG) - .put(() -> AetherIIBlocks.AMBEROOT_DEPOSIT, () -> AetherIIBlocks.STRIPPED_AMBEROOT_LOG) - .put(() -> AetherIIBlocks.AMBEROOT_WOOD, () -> AetherIIBlocks.STRIPPED_AMBEROOT_WOOD) - .put(() -> AetherIIBlocks.AMBEROOT_TRUNK, () -> AetherIIBlocks.STRIPPED_AMBEROOT_TRUNK) - .put(() -> AetherIIBlocks.GUARDIAN_LOG, () -> AetherIIBlocks.STRIPPED_GUARDIAN_LOG) - .put(() -> AetherIIBlocks.GUARDIAN_LOG_SLAB, () -> AetherIIBlocks.STRIPPED_GUARDIAN_LOG_SLAB) - .put(() -> AetherIIBlocks.GUARDIAN_WOOD, () -> AetherIIBlocks.STRIPPED_GUARDIAN_WOOD) - .put(() -> AetherIIBlocks.GUARDIAN_WOOD_SLAB, () -> AetherIIBlocks.STRIPPED_GUARDIAN_WOOD_SLAB) - .put(() -> AetherIIBlocks.GUARDIAN_TRUNK, () -> AetherIIBlocks.STRIPPED_GUARDIAN_TRUNK) - .put(() -> AetherIIBlocks.INFECTED_LOG, () -> AetherIIBlocks.STRIPPED_INFECTED_LOG) - .put(() -> AetherIIBlocks.INFECTED_LOG_SLAB, () -> AetherIIBlocks.STRIPPED_INFECTED_LOG_SLAB) - .put(() -> AetherIIBlocks.INFECTED_WOOD, () -> AetherIIBlocks.STRIPPED_INFECTED_WOOD) - .put(() -> AetherIIBlocks.INFECTED_WOOD_SLAB, () -> AetherIIBlocks.STRIPPED_INFECTED_WOOD_SLAB) - .put(() -> AetherIIBlocks.INFECTED_TRUNK, () -> AetherIIBlocks.STRIPPED_INFECTED_TRUNK) - .build(); - /** * Blocks able to be flattened with {@link ItemAbilities#SHOVEL_FLATTEN}, and the equivalent result block. */ @@ -1189,16 +1156,11 @@ public static void registerFluidInteractions() { .build(); public static BlockState registerBlockModifications(LevelAccessor levelAccessor, ItemAbility toolAction, BlockPos blockPos, BlockState oldState, BlockState newState) { - Map strippables = STRIPPABLES.entrySet().stream().collect(Collectors.toMap((e) -> e.getKey().get().get(), (e) -> e.getValue().get().get())); Map flattenables = FLATTENABLES.entrySet().stream().collect(Collectors.toMap((e) -> e.getKey().get().get(), (e) -> e.getValue().get().get())); Map tillables = TILLABLES.entrySet().stream().collect(Collectors.toMap((e) -> e.getKey().get().get(), (e) -> e.getValue().get().get())); Block oldBlock = oldState.getBlock(); - if (toolAction == ItemAbilities.AXE_STRIP) { - if (strippables.containsKey(oldBlock)) { - newState = strippables.get(oldBlock).withPropertiesOf(oldState); - } - } else if (toolAction == ItemAbilities.SHOVEL_FLATTEN) { + if (toolAction == ItemAbilities.SHOVEL_FLATTEN) { if (flattenables.containsKey(oldBlock)) { newState = flattenables.get(oldBlock).withPropertiesOf(oldState); } diff --git a/src/main/java/com/aetherteam/aetherii/data/generators/AetherIIDataMapData.java b/src/main/java/com/aetherteam/aetherii/data/generators/AetherIIDataMapData.java index a580cd42e9..3b754b0572 100644 --- a/src/main/java/com/aetherteam/aetherii/data/generators/AetherIIDataMapData.java +++ b/src/main/java/com/aetherteam/aetherii/data/generators/AetherIIDataMapData.java @@ -17,6 +17,7 @@ import net.neoforged.neoforge.registries.datamaps.builtin.Compostable; import net.neoforged.neoforge.registries.datamaps.builtin.FurnaceFuel; import net.neoforged.neoforge.registries.datamaps.builtin.NeoForgeDataMaps; +import net.neoforged.neoforge.registries.datamaps.builtin.Strippable; import java.util.concurrent.CompletableFuture; @@ -117,6 +118,35 @@ protected void gather(HolderLookup.Provider provider) { fuels.add(AetherIIBlocks.SKYROOT_TWIG.getId(), new FurnaceFuel(200), false); fuels.add(AetherIIItems.SKYROOT_STICK, new FurnaceFuel(100), false); + var strippables = this.builder(NeoForgeDataMaps.STRIPPABLES); + strippables.add(AetherIIBlocks.SKYROOT_LOG, new Strippable(AetherIIBlocks.STRIPPED_SKYROOT_LOG.get()), false); + strippables.add(AetherIIBlocks.SKYROOT_WOOD, new Strippable(AetherIIBlocks.STRIPPED_SKYROOT_WOOD.get()), false); + strippables.add(AetherIIBlocks.SKYROOT_TRUNK, new Strippable(AetherIIBlocks.STRIPPED_SKYROOT_TRUNK.get()), false); + strippables.add(AetherIIBlocks.GREATROOT_LOG, new Strippable(AetherIIBlocks.STRIPPED_GREATROOT_LOG.get()), false); + strippables.add(AetherIIBlocks.GREATROOT_WOOD, new Strippable(AetherIIBlocks.STRIPPED_GREATROOT_WOOD.get()), false); + strippables.add(AetherIIBlocks.GREATROOT_TRUNK, new Strippable(AetherIIBlocks.STRIPPED_GREATROOT_TRUNK.get()), false); + strippables.add(AetherIIBlocks.WISPROOT_LOG, new Strippable(AetherIIBlocks.STRIPPED_WISPROOT_LOG.get()), false); + strippables.add(AetherIIBlocks.WISPROOT_WOOD, new Strippable(AetherIIBlocks.STRIPPED_WISPROOT_WOOD.get()), false); + strippables.add(AetherIIBlocks.WISPROOT_TRUNK, new Strippable(AetherIIBlocks.STRIPPED_WISPROOT_TRUNK.get()), false); + strippables.add(AetherIIBlocks.MOSSY_WISPROOT_LOG, new Strippable(AetherIIBlocks.WISPROOT_LOG.get()), false); + strippables.add(AetherIIBlocks.MOSSY_WISPROOT_WOOD, new Strippable(AetherIIBlocks.WISPROOT_WOOD.get()), false); + strippables.add(AetherIIBlocks.MOSSY_WISPROOT_TRUNK, new Strippable(AetherIIBlocks.WISPROOT_TRUNK.get()), false); + strippables.add(AetherIIBlocks.MOSSY_WISPROOT_LOG_BASE, new Strippable(AetherIIBlocks.WISPROOT_LOG.get()), false); + strippables.add(AetherIIBlocks.AMBEROOT_LOG, new Strippable(AetherIIBlocks.STRIPPED_AMBEROOT_LOG.get()), false); + strippables.add(AetherIIBlocks.AMBEROOT_DEPOSIT, new Strippable(AetherIIBlocks.STRIPPED_AMBEROOT_LOG.get()), false); + strippables.add(AetherIIBlocks.AMBEROOT_WOOD, new Strippable(AetherIIBlocks.STRIPPED_AMBEROOT_WOOD.get()), false); + strippables.add(AetherIIBlocks.AMBEROOT_TRUNK, new Strippable(AetherIIBlocks.STRIPPED_AMBEROOT_TRUNK.get()), false); + strippables.add(AetherIIBlocks.GUARDIAN_LOG, new Strippable(AetherIIBlocks.STRIPPED_GUARDIAN_LOG.get()), false); + strippables.add(AetherIIBlocks.GUARDIAN_LOG_SLAB, new Strippable(AetherIIBlocks.STRIPPED_GUARDIAN_LOG_SLAB.get()), false); + strippables.add(AetherIIBlocks.GUARDIAN_WOOD, new Strippable(AetherIIBlocks.STRIPPED_GUARDIAN_WOOD.get()), false); + strippables.add(AetherIIBlocks.GUARDIAN_WOOD_SLAB, new Strippable(AetherIIBlocks.STRIPPED_GUARDIAN_WOOD_SLAB.get()), false); + strippables.add(AetherIIBlocks.GUARDIAN_TRUNK, new Strippable(AetherIIBlocks.STRIPPED_GUARDIAN_TRUNK.get()), false); + strippables.add(AetherIIBlocks.INFECTED_LOG, new Strippable(AetherIIBlocks.STRIPPED_INFECTED_LOG.get()), false); + strippables.add(AetherIIBlocks.INFECTED_LOG_SLAB, new Strippable(AetherIIBlocks.STRIPPED_INFECTED_LOG_SLAB.get()), false); + strippables.add(AetherIIBlocks.INFECTED_WOOD, new Strippable(AetherIIBlocks.STRIPPED_INFECTED_WOOD.get()), false); + strippables.add(AetherIIBlocks.INFECTED_WOOD_SLAB, new Strippable(AetherIIBlocks.STRIPPED_INFECTED_WOOD_SLAB.get()), false); + strippables.add(AetherIIBlocks.INFECTED_TRUNK, new Strippable(AetherIIBlocks.STRIPPED_INFECTED_TRUNK.get()), false); + var amberHourglassFuels = this.builder(AetherIIDataMaps.AMBER_HOURGLASS_FUELS); amberHourglassFuels.add(AetherIIItems.GOLDEN_AMBER, new AmberHourglassFuel(400), false); amberHourglassFuels.add(AetherIIBlocks.GOLDEN_AMBER_BLOCK.getId(), new AmberHourglassFuel(4000), false);