package com.thebrokenrail.energonrelics.api.block.energy; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.item.ItemPlacementContext; import net.minecraft.state.StateManager; import net.minecraft.state.property.DirectionProperty; import net.minecraft.state.property.Properties; import net.minecraft.util.BlockMirror; import net.minecraft.util.BlockRotation; import net.minecraft.util.math.Direction; /** * Block That Interacts With Energy That Faces A Direction */ @SuppressWarnings("deprecation") public abstract class FacingEnergyBlock extends EnergyBlock { public static final DirectionProperty FACING = Properties.FACING; public FacingEnergyBlock(Settings settings) { super(settings); setDefaultState(getDefaultState().with(FACING, Direction.NORTH)); } @Override protected void appendProperties(StateManager.Builder builder) { builder.add(FACING); } @Override public BlockState rotate(BlockState state, BlockRotation rotation) { return state.with(FACING, rotation.rotate(state.get(FACING))); } @Override public BlockState mirror(BlockState state, BlockMirror mirror) { return state.rotate(mirror.getRotation(state.get(FACING))); } @Override public BlockState getPlacementState(ItemPlacementContext ctx) { return getDefaultState().with(FACING, ctx.getPlayerLookDirection().getOpposite()); } }