Skip to content

Commit 7a02aa4

Browse files
committed
Make treecutter upgrade not tear down player-placed/persistent leaves
1 parent ccb1201 commit 7a02aa4

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

neoforge-main/src/main/java/dev/compactmods/machines/room/upgrade/example/TreeCutterUpgrade.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import net.minecraft.world.item.ItemStack;
2222
import net.minecraft.world.item.TooltipFlag;
2323
import net.minecraft.world.level.block.Block;
24+
import net.minecraft.world.level.block.LeavesBlock;
2425
import net.minecraft.world.level.block.state.BlockState;
2526
import net.minecraft.world.phys.AABB;
2627
import net.neoforged.neoforge.capabilities.Capabilities;
@@ -89,7 +90,16 @@ public static void onTick(ServerLevel level, RoomInstance room, ItemStack upgrad
8990
final var state = level.getBlockState(pos);
9091
return Pair.of(pos.immutable(), state);
9192
})
92-
.filter(pair -> pair.right().is(BlockTags.LOGS) || pair.right().is(BlockTags.LEAVES))
93+
.filter(pair -> {
94+
BlockState state = pair.right();
95+
if(state.is(BlockTags.LOGS)) return true;
96+
if(state.is(BlockTags.LEAVES)) {
97+
if (state.hasProperty(LeavesBlock.PERSISTENT)) return !state.getValue(LeavesBlock.PERSISTENT);
98+
return true;
99+
}
100+
101+
return false;
102+
})
93103
.limit(maxAllowed)
94104
.collect(Collectors.toUnmodifiableSet());
95105

0 commit comments

Comments
 (0)