Example #1
0
 @Override
 public <E> Optional<BlockState> getStateWithValue(
     IBlockState blockState, Key<? extends BaseValue<E>> key, E value) {
   if (key.equals(Keys.POWERED)) {
     return Optional.of(
         (BlockState) blockState.withProperty(BlockButton.POWERED, (Boolean) value));
   }
   if (key.equals(Keys.DIRECTION)) {
     final Direction dir = (Direction) value;
     return Optional.of(
         (BlockState) blockState.withProperty(BlockButton.FACING, DirectionResolver.getFor(dir)));
   }
   return super.getStateWithValue(blockState, key, value);
 }
 @Override
 public <E> Optional<BlockState> getStateWithValue(
     IBlockState blockState, Key<? extends BaseValue<E>> key, E value) {
   if (key.equals(Keys.PISTON_TYPE)) {
     final BlockPistonExtension.EnumPistonType pistonType =
         (BlockPistonExtension.EnumPistonType) value;
     return Optional.of((BlockState) blockState.withProperty(BlockPistonMoving.TYPE, pistonType));
   }
   if (key.equals(Keys.DIRECTION)) {
     final Direction dir = (Direction) value;
     return Optional.of(
         (BlockState)
             blockState.withProperty(BlockPistonMoving.FACING, DirectionResolver.getFor(dir)));
   }
   return super.getStateWithValue(blockState, key, value);
 }
Example #3
0
 @Override
 public Optional<BlockState> getStateWithData(
     IBlockState blockState, ImmutableDataManipulator<?, ?> manipulator) {
   if (manipulator instanceof ImmutablePoweredData) {
     return Optional.of(
         (BlockState)
             blockState.withProperty(
                 BlockButton.POWERED, ((ImmutablePoweredData) manipulator).powered().get()));
   }
   if (manipulator instanceof ImmutableDirectionalData) {
     final Direction dir = ((ImmutableDirectionalData) manipulator).direction().get();
     return Optional.of(
         (BlockState) blockState.withProperty(BlockButton.FACING, DirectionResolver.getFor(dir)));
   }
   return super.getStateWithData(blockState, manipulator);
 }
 @Override
 public Optional<BlockState> getStateWithData(
     IBlockState blockState, ImmutableDataManipulator<?, ?> manipulator) {
   if (manipulator instanceof ImmutablePistonData) {
     final BlockPistonExtension.EnumPistonType pistonType =
         (BlockPistonExtension.EnumPistonType)
             (Object) ((ImmutablePistonData) manipulator).type().get();
     return Optional.of((BlockState) blockState.withProperty(BlockPistonMoving.TYPE, pistonType));
   }
   if (manipulator instanceof ImmutableDirectionalData) {
     final Direction dir = ((ImmutableDirectionalData) manipulator).direction().get();
     return Optional.of(
         (BlockState)
             blockState.withProperty(BlockPistonMoving.FACING, DirectionResolver.getFor(dir)));
   }
   return super.getStateWithData(blockState, manipulator);
 }
 private ImmutableDirectionalData getDirectionalData(IBlockState blockState) {
   return ImmutableDataCachingUtil.getManipulator(
       ImmutableSpongeDirectionalData.class,
       DirectionResolver.getFor(blockState.getValue(BlockPistonMoving.FACING)));
 }