diff --git a/CHANGELOG.md b/CHANGELOG.md index 48868d7bc..0fbb8ac74 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Fixed serverside configs not syncing up with clientside - Fixed not being able to move inventory items in Grid GUI's to hotbar via the number keys - Fixed Relays when being in "Ignore Redstone" mode using up energy +- Fixed Crafter facing bottom side on placement - Improved collisions of Cable parts - You now have to click the actual cable part head in order to get the GUI open diff --git a/src/main/java/refinedstorage/block/BlockBase.java b/src/main/java/refinedstorage/block/BlockBase.java index ffd34a258..85a76e380 100755 --- a/src/main/java/refinedstorage/block/BlockBase.java +++ b/src/main/java/refinedstorage/block/BlockBase.java @@ -103,7 +103,7 @@ public abstract class BlockBase extends Block { IBlockState state = super.onBlockPlaced(world, pos, facing, hitX, hitY, hitZ, meta, entity); if (getPlacementType() != null) { - return state.withProperty(DIRECTION, getPlacementType().getFrom(facing, entity)); + return state.withProperty(DIRECTION, getPlacementType().getFrom(facing, pos, entity)); } return state; diff --git a/src/main/java/refinedstorage/block/BlockCable.java b/src/main/java/refinedstorage/block/BlockCable.java index a91e494e3..e6a6285a4 100755 --- a/src/main/java/refinedstorage/block/BlockCable.java +++ b/src/main/java/refinedstorage/block/BlockCable.java @@ -237,7 +237,7 @@ public class BlockCable extends BlockCoverable { IBlockState state = super.onBlockPlaced(world, pos, facing, hitX, hitY, hitZ, meta, entity); if (getPlacementType() != null) { - return state.withProperty(DIRECTION, getPlacementType().getFrom(facing, entity)); + return state.withProperty(DIRECTION, getPlacementType().getFrom(facing, pos, entity)); } return state; diff --git a/src/main/java/refinedstorage/block/BlockCrafter.java b/src/main/java/refinedstorage/block/BlockCrafter.java index ad95c3552..23f33586a 100755 --- a/src/main/java/refinedstorage/block/BlockCrafter.java +++ b/src/main/java/refinedstorage/block/BlockCrafter.java @@ -33,7 +33,7 @@ public class BlockCrafter extends BlockNode { @Override public EnumPlacementType getPlacementType() { - return EnumPlacementType.ANY; + return EnumPlacementType.ANY_FACE_PLAYER; } public boolean hasConnectivityState() { diff --git a/src/main/java/refinedstorage/block/EnumPlacementType.java b/src/main/java/refinedstorage/block/EnumPlacementType.java index 34945559a..650c8f9e4 100755 --- a/src/main/java/refinedstorage/block/EnumPlacementType.java +++ b/src/main/java/refinedstorage/block/EnumPlacementType.java @@ -1,12 +1,17 @@ package refinedstorage.block; +import net.minecraft.block.BlockPistonBase; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; public enum EnumPlacementType { ANY( EnumFacing.VALUES ), + ANY_FACE_PLAYER( + EnumFacing.VALUES + ), HORIZONTAL( EnumFacing.NORTH, EnumFacing.EAST, @@ -20,10 +25,12 @@ public enum EnumPlacementType { this.allowed = allowed; } - EnumFacing getFrom(EnumFacing facing, EntityLivingBase entity) { + EnumFacing getFrom(EnumFacing facing, BlockPos pos, EntityLivingBase entity) { switch (this) { case ANY: return facing.getOpposite(); + case ANY_FACE_PLAYER: + return BlockPistonBase.getFacingFromEntity(pos, entity); case HORIZONTAL: return entity.getHorizontalFacing().getOpposite(); default: @@ -34,6 +41,7 @@ public enum EnumPlacementType { EnumFacing getNext(EnumFacing previous) { switch (this) { case ANY: + case ANY_FACE_PLAYER: return previous.ordinal() + 1 >= EnumFacing.VALUES.length ? EnumFacing.VALUES[0] : EnumFacing.VALUES[previous.ordinal() + 1]; case HORIZONTAL: return previous.rotateYCCW();