From be60c6ce5a51f5f36968469367d9a4f7035693be Mon Sep 17 00:00:00 2001 From: IThundxr Date: Thu, 20 Feb 2025 07:15:20 -0500 Subject: [PATCH] Misc fixes --- changelog.md | 1 + .../actors/harvester/HarvesterMovementBehaviour.java | 4 ++-- .../kinetics/base/BlockBreakingKineticBlockEntity.java | 2 +- .../logistics/tableCloth/TableClothBlockEntity.java | 5 ++--- .../create/content/trains/track/TrackPlacement.java | 3 ++- .../simibubi/create/foundation/utility/TreeCutter.java | 10 +++++----- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/changelog.md b/changelog.md index 77d30a46a8..e62e75725f 100644 --- a/changelog.md +++ b/changelog.md @@ -140,6 +140,7 @@ _Now using Flywheel 1.0_ - Added `#create:sugar_cane_variants` to allow the mechanical saw to work with custom sugarcane variants (#7263) - New API for custom storage block behaviour on contraptions. For simple cases, create provides the `#create:simple_mounted_storage` and `#create:chest_mounted_storage` block tags. +- Added `#create:non_breakable` to mark blocks that cannot be broken by block-breaking kinetics - Removed LangMerger and related classes - Implemented an api to allow mods to register schematic requirements, partial safe nbt and contraption transforms without implementing interfaces (#4702) diff --git a/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java index 41b3d06928..02677cb2f5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/actors/harvester/HarvesterMovementBehaviour.java @@ -4,7 +4,7 @@ import javax.annotation.Nullable; import org.apache.commons.lang3.mutable.MutableBoolean; -import com.simibubi.create.AllTags; +import com.simibubi.create.AllTags.AllBlockTags; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.render.ActorVisual; @@ -172,7 +172,7 @@ public class HarvesterMovementBehaviour implements MovementBehaviour { if (block == Blocks.SWEET_BERRY_BUSH) { return state.setValue(BlockStateProperties.AGE_3, Integer.valueOf(1)); } - if (state.is(AllTags.AllBlockTags.SUGAR_CANE_VARIANTS.tag) || block instanceof GrowingPlantBlock) { + if (AllBlockTags.SUGAR_CANE_VARIANTS.matches(block) || block instanceof GrowingPlantBlock) { if (state.getFluidState() .isEmpty()) return Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingKineticBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingKineticBlockEntity.java index 7912468599..278440b658 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingKineticBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/base/BlockBreakingKineticBlockEntity.java @@ -130,7 +130,7 @@ public abstract class BlockBreakingKineticBlockEntity extends KineticBlockEntity } public static boolean isBreakable(BlockState stateToBreak, float blockHardness) { - return !(stateToBreak.liquid() || stateToBreak.getBlock() instanceof AirBlock || blockHardness == -1 || stateToBreak.is(AllBlockTags.NON_BREAKABLE.tag)); + return !(stateToBreak.liquid() || stateToBreak.getBlock() instanceof AirBlock || blockHardness == -1 || AllBlockTags.NON_BREAKABLE.matches(stateToBreak)); } public void onBlockBroken(BlockState stateToBreak) { diff --git a/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java index 37d2e07046..30bc0c4904 100644 --- a/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java @@ -86,10 +86,9 @@ public class TableClothBlockEntity extends SmartBlockEntity { public void lazyTick() { super.lazyTick(); BlockPos relativePos = worldPosition.relative(facing); - sideOccluded = level.getBlockState(relativePos) - .is(AllBlockTags.TABLE_CLOTHS.tag) + sideOccluded = AllBlockTags.TABLE_CLOTHS.matches(level.getBlockState(relativePos)) || Block.isFaceFull(level.getBlockState(relativePos.below()) - .getOcclusionShape(level, relativePos.below()), facing.getOpposite()); + .getOcclusionShape(level, relativePos.below()), facing.getOpposite()); } @Override diff --git a/src/main/java/com/simibubi/create/content/trains/track/TrackPlacement.java b/src/main/java/com/simibubi/create/content/trains/track/TrackPlacement.java index 68091ff151..37232bd94e 100644 --- a/src/main/java/com/simibubi/create/content/trains/track/TrackPlacement.java +++ b/src/main/java/com/simibubi/create/content/trains/track/TrackPlacement.java @@ -8,6 +8,7 @@ import java.util.Set; import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.AllTags; +import com.simibubi.create.AllTags.AllItemTags; import com.simibubi.create.content.equipment.blueprint.BlueprintOverlayRenderer; import com.simibubi.create.foundation.block.ProperWaterloggedBlock; import com.simibubi.create.foundation.utility.BlockHelper; @@ -375,7 +376,7 @@ public class TrackPlacement { ItemStack offhandItem = player.getOffhandItem() .copy(); - boolean shouldPave = offhandItem.getItem() instanceof BlockItem && !offhandItem.is(AllTags.AllItemTags.INVALID_FOR_TRACK_PAVING.tag); + boolean shouldPave = offhandItem.getItem() instanceof BlockItem && !AllItemTags.INVALID_FOR_TRACK_PAVING.matches(offhandItem); if (shouldPave) { BlockItem paveItem = (BlockItem) offhandItem.getItem(); paveTracks(level, info, paveItem, true); diff --git a/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java b/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java index e77750e380..768facf68b 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java +++ b/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java @@ -62,8 +62,8 @@ public class TreeCutter { /** * Finds a tree at the given pos. Block at the position should be air * - * @param reader the level that will be searched for a tree - * @param pos position that the saw cut at + * @param reader the level that will be searched for a tree + * @param pos position that the saw cut at * @param brokenState block state what was broken by the saw */ @Nonnull @@ -288,14 +288,14 @@ public class TreeCutter { } private static void forNeighbours(BlockPos pos, Set visited, SearchDirection direction, - Consumer acceptor) { + Consumer acceptor) { BlockPos.betweenClosedStream(pos.offset(-1, direction.minY, -1), pos.offset(1, direction.maxY, 1)) .filter(((Predicate) visited::contains).negate()) .forEach(acceptor); } public static boolean isRoot(BlockState state) { - return state.is(AllBlockTags.ROOTS.tag); + return AllBlockTags.ROOTS.matches(state); } public static boolean isLog(BlockState state) { @@ -333,7 +333,7 @@ public class TreeCutter { @Override public void destroyBlocks(Level world, ItemStack toDamage, @Nullable Player playerEntity, - BiConsumer drop) { + BiConsumer drop) { attachments.forEach(makeCallbackFor(world, 1 / 32f, toDamage, playerEntity, drop)); logs.forEach(makeCallbackFor(world, 1 / 2f, toDamage, playerEntity, drop)); leaves.forEach(makeCallbackFor(world, 1 / 8f, toDamage, playerEntity, drop));