better pistons rotators
This commit is contained in:
1 parent
8293319587
commit
6166eb3fbf
4 files changed
+40
-2
No files matched your search
@@ -0,0 +1,10 @@
|
|||||||
|
package carpet.fakes;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public interface PistonBlockInterface
|
||||||
|
{
|
||||||
|
boolean publicShouldExtend(World world_1, BlockPos blockPos_1, Direction direction_1);
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package carpet.helpers;
|
package carpet.helpers;
|
||||||
|
|
||||||
|
import carpet.fakes.PistonBlockInterface;
|
||||||
import carpet.settings.CarpetSettings;
|
import carpet.settings.CarpetSettings;
|
||||||
import net.minecraft.block.AbstractRedstoneGateBlock;
|
import net.minecraft.block.AbstractRedstoneGateBlock;
|
||||||
import net.minecraft.block.BedBlock;
|
import net.minecraft.block.BedBlock;
|
||||||
@@ -27,6 +28,7 @@ import net.minecraft.block.dispenser.FallibleItemDispenserBehavior;
|
|||||||
import net.minecraft.block.enums.BlockHalf;
|
import net.minecraft.block.enums.BlockHalf;
|
||||||
import net.minecraft.block.enums.ComparatorMode;
|
import net.minecraft.block.enums.ComparatorMode;
|
||||||
import net.minecraft.block.enums.SlabType;
|
import net.minecraft.block.enums.SlabType;
|
||||||
|
import net.minecraft.block.piston.PistonHandler;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.BlockItem;
|
import net.minecraft.item.BlockItem;
|
||||||
@@ -157,10 +159,14 @@ public class BlockRotator
|
|||||||
// Block rotation for blocks that can be placed in all 6 or 4 rotations.
|
// Block rotation for blocks that can be placed in all 6 or 4 rotations.
|
||||||
if(block instanceof FacingBlock || block instanceof DispenserBlock)
|
if(block instanceof FacingBlock || block instanceof DispenserBlock)
|
||||||
{
|
{
|
||||||
if (block instanceof PistonBlock && (world.isReceivingRedstonePower(blockpos) || iblockstate.get(PistonBlock.EXTENDED)))
|
Direction face = iblockstate.get(FacingBlock.FACING);
|
||||||
|
if (block instanceof PistonBlock && (
|
||||||
|
iblockstate.get(PistonBlock.EXTENDED)
|
||||||
|
|| ( ((PistonBlockInterface)block).publicShouldExtend(world, blockpos, face) && (new PistonHandler(world, blockpos, face, true)).calculatePush() )
|
||||||
|
)
|
||||||
|
)
|
||||||
return stack;
|
return stack;
|
||||||
|
|
||||||
Direction face = iblockstate.get(FacingBlock.FACING);
|
|
||||||
Direction rotated_face = face.rotateClockwise(sourceFace.getAxis());
|
Direction rotated_face = face.rotateClockwise(sourceFace.getAxis());
|
||||||
if(sourceFace.getId() % 2 == 0 || rotated_face == face)
|
if(sourceFace.getId() % 2 == 0 || rotated_face == face)
|
||||||
{ // Flip to make blocks always rotate clockwise relative to the dispenser
|
{ // Flip to make blocks always rotate clockwise relative to the dispenser
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package carpet.mixins;
|
||||||
|
|
||||||
|
import carpet.fakes.PistonBlockInterface;
|
||||||
|
import net.minecraft.block.PistonBlock;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
@Mixin(PistonBlock.class)
|
||||||
|
public abstract class PistonBlock_rotatorBlockMixin implements PistonBlockInterface
|
||||||
|
{
|
||||||
|
@Shadow protected abstract boolean shouldExtend(World world_1, BlockPos blockPos_1, Direction direction_1);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean publicShouldExtend(World world_1, BlockPos blockPos_1, Direction direction_1)
|
||||||
|
{
|
||||||
|
return shouldExtend(world_1, blockPos_1,direction_1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -81,6 +81,7 @@
|
|||||||
"HopperBlock_cactusMixin",
|
"HopperBlock_cactusMixin",
|
||||||
"ItemUsageContext_cactusMixin",
|
"ItemUsageContext_cactusMixin",
|
||||||
"DispenserBlock_cactusMixin",
|
"DispenserBlock_cactusMixin",
|
||||||
|
"PistonBlock_rotatorBlockMixin",
|
||||||
|
|
||||||
"ServerPlayNetworkHandler_antiCheatDisabledMixin",
|
"ServerPlayNetworkHandler_antiCheatDisabledMixin",
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user