9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-25 18:09:27 +00:00

fix(block): 修正

This commit is contained in:
jhqwqmc
2025-06-22 04:13:18 +08:00
parent 06fd6874da
commit b1e8e7a41f
4 changed files with 5 additions and 5 deletions

View File

@@ -97,7 +97,7 @@ public class DoorBlockBehavior extends AbstractCanSurviveBlockBehavior {
ImmutableBlockState immutableBlockState = BukkitBlockManager.instance().getImmutableBlockState(stateId);
if (immutableBlockState == null || immutableBlockState.isEmpty()) return blockState;
DoubleBlockHalf half = immutableBlockState.get(this.halfProperty);
Object direction = VersionHelper.isOrAbove1_21_2() ? args[4] : args[0];
Object direction = VersionHelper.isOrAbove1_21_2() ? args[4] : args[1];
if (DirectionUtils.isYAxis(direction) && half == DoubleBlockHalf.LOWER == (direction == CoreReflections.instance$Direction$UP)) {
ImmutableBlockState neighborState = BukkitBlockManager.instance().getImmutableBlockState(BlockStateUtils.blockStateToId(VersionHelper.isOrAbove1_21_2() ? args[6] : args[2]));
if (neighborState == null || neighborState.isEmpty()) {

View File

@@ -93,7 +93,7 @@ public class FenceGateBlockBehavior extends BukkitBlockBehavior {
@Override
public Object updateShape(Object thisBlock, Object[] args, Callable<Object> superMethod) throws Exception {
Object blockState = args[0];
Direction direction = DirectionUtils.fromNMSDirection(VersionHelper.isOrAbove1_21_2() ? args[4] : args[0]);
Direction direction = DirectionUtils.fromNMSDirection(VersionHelper.isOrAbove1_21_2() ? args[4] : args[1]);
ImmutableBlockState state = BukkitBlockManager.instance().getImmutableBlockState(BlockStateUtils.blockStateToId(blockState));
if (state == null || state.isEmpty()) return blockState;
if (state.get(this.facingProperty).toDirection().clockWise().axis() != direction.axis()) {

View File

@@ -59,14 +59,14 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior {
level = args[3];
blockPos = args[4];
}
Direction direction = DirectionUtils.fromNMSDirection(VersionHelper.isOrAbove1_21_2() ? args[4] : args[0]);
Direction direction = DirectionUtils.fromNMSDirection(VersionHelper.isOrAbove1_21_2() ? args[4] : args[1]);
return direction == Direction.DOWN && !FastNMS.INSTANCE.method$BlockStateBase$canSurvive(state, level, blockPos)
? MBlocks.AIR$defaultState
: superMethod.call();
}
public boolean canSurvive(Object thisBlock, Object[] args, Callable<Object> superMethod) throws Exception {
Object blockPos = LocationUtils.fromVec(args[2]);
Object blockPos = LocationUtils.below(args[2]);
Object level = args[1];
return FastNMS.INSTANCE.method$Block$canSupportRigidBlock(level, blockPos)
|| FastNMS.INSTANCE.method$Block$canSupportCenter(level, blockPos, CoreReflections.instance$Direction$UP);

View File

@@ -70,7 +70,7 @@ public class StairsBlockBehavior extends BukkitBlockBehavior {
if (super.waterloggedProperty != null && immutableBlockState.get(this.waterloggedProperty)) {
FastNMS.INSTANCE.method$LevelAccessor$scheduleFluidTick(VersionHelper.isOrAbove1_21_2() ? args[2] : args[3], VersionHelper.isOrAbove1_21_2() ? args[3] : args[4], MFluids.WATER, 5);
}
Direction direction = DirectionUtils.fromNMSDirection(VersionHelper.isOrAbove1_21_2() ? args[4] : args[0]);
Direction direction = DirectionUtils.fromNMSDirection(VersionHelper.isOrAbove1_21_2() ? args[4] : args[1]);
StairsShape stairsShape = getStairsShape(immutableBlockState, level, LocationUtils.fromBlockPos(blockPos));
return direction.axis().isHorizontal()
? immutableBlockState.with(this.shapeProperty, stairsShape).customBlockState().handle()