Search in sources :

Example 1 with ImmutableLogAxisData

use of org.spongepowered.api.data.manipulator.immutable.block.ImmutableLogAxisData in project SpongeCommon by SpongePowered.

the class MixinBlockLog method getStateWithData.

@Override
public Optional<BlockState> getStateWithData(IBlockState blockState, ImmutableDataManipulator<?, ?> manipulator) {
    if (manipulator instanceof ImmutableTreeData) {
        final TreeType treeType = ((ImmutableTreeData) manipulator).type().get();
        final BlockPlanks.EnumType type = TreeTypeResolver.getFor(treeType);
        return processLogType(blockState, type, treeType);
    } else if (manipulator instanceof ImmutableLogAxisData) {
        final LogAxis logAxis = ((ImmutableLogAxisData) manipulator).type().get();
        return Optional.of((BlockState) blockState.withProperty(BlockLog.LOG_AXIS, (BlockLog.EnumAxis) (Object) logAxis));
    }
    return super.getStateWithData(blockState, manipulator);
}
Also used : TreeType(org.spongepowered.api.data.type.TreeType) BlockState(org.spongepowered.api.block.BlockState) IBlockState(net.minecraft.block.state.IBlockState) ImmutableTreeData(org.spongepowered.api.data.manipulator.immutable.block.ImmutableTreeData) LogAxis(org.spongepowered.api.data.type.LogAxis) ImmutableLogAxisData(org.spongepowered.api.data.manipulator.immutable.block.ImmutableLogAxisData) BlockPlanks(net.minecraft.block.BlockPlanks)

Aggregations

BlockPlanks (net.minecraft.block.BlockPlanks)1 IBlockState (net.minecraft.block.state.IBlockState)1 BlockState (org.spongepowered.api.block.BlockState)1 ImmutableLogAxisData (org.spongepowered.api.data.manipulator.immutable.block.ImmutableLogAxisData)1 ImmutableTreeData (org.spongepowered.api.data.manipulator.immutable.block.ImmutableTreeData)1 LogAxis (org.spongepowered.api.data.type.LogAxis)1 TreeType (org.spongepowered.api.data.type.TreeType)1