Skip to content

Commit

Permalink
Add new rotable blocks to flippinCactus (#1842)
Browse files Browse the repository at this point in the history
  • Loading branch information
end-user authored Jan 18, 2024
1 parent 7d0b2c7 commit 12edc7c
Showing 1 changed file with 12 additions and 16 deletions.
28 changes: 12 additions & 16 deletions src/main/java/carpet/helpers/BlockRotator.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,7 @@
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BaseRailBlock;
import net.minecraft.world.level.block.BedBlock;
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.DispenserBlock;
import net.minecraft.world.level.block.EndRodBlock;
import net.minecraft.world.level.block.HopperBlock;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.ObserverBlock;
import net.minecraft.world.level.block.RotatedPillarBlock;
import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.level.block.SlabBlock;
import net.minecraft.world.level.block.StairBlock;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.piston.PistonBaseBlock;
import net.minecraft.world.level.block.piston.PistonStructureResolver;
import net.minecraft.world.level.block.state.BlockState;
Expand Down Expand Up @@ -112,11 +99,11 @@ public static boolean flipBlock(BlockState state, Level world, Player player, In
Vec3 hitVec = hit.getLocation().subtract(pos.getX(), pos.getY(), pos.getZ());
Direction facing = hit.getDirection();
BlockState newState = null;
if ((block instanceof HorizontalDirectionalBlock || block instanceof BaseRailBlock) && !(block instanceof BedBlock))
if (isHorizontallyRotatable(block) && !(block instanceof BedBlock))
{
newState = state.rotate(Rotation.CLOCKWISE_90);
}
else if (block instanceof ObserverBlock || block instanceof EndRodBlock)
else if (block instanceof ObserverBlock || block instanceof RodBlock)
{
newState = state.setValue(DirectionalBlock.FACING, state.getValue(DirectionalBlock.FACING).getOpposite());
}
Expand Down Expand Up @@ -203,4 +190,13 @@ protected ItemStack execute(BlockSource source, ItemStack stack)
}
}
}

private static boolean isHorizontallyRotatable(Block block) {
return block instanceof HorizontalDirectionalBlock
|| block instanceof BaseRailBlock
|| block instanceof BeehiveBlock
|| block instanceof ChiseledBookShelfBlock
|| block instanceof DecoratedPotBlock
|| block instanceof CalibratedSculkSensorBlock;
}
}

0 comments on commit 12edc7c

Please sign in to comment.