use of net.minecraft.block.Blocks in project BluePower by Qmunity.
the class TileBlulectricCable method tick.
@Override
public void tick() {
storage.resetCurrent();
if (level != null && !level.isClientSide) {
BlockState state = getBlockState();
if (state.getBlock() instanceof BlockBlulectricCable) {
List<Direction> directions = new ArrayList<>(BlockBlulectricCable.FACING.getPossibleValues());
// Check the side has capability
directions.removeIf(d -> !getCapability(CapabilityBlutricity.BLUTRICITY_CAPABILITY, d).isPresent());
// Balance power of attached blulectric blocks.
for (Direction facing : directions) {
Block fBlock = level.getBlockState(worldPosition.relative(facing)).getBlock();
if (fBlock != Blocks.AIR && fBlock != Blocks.WATER) {
TileEntity tile = level.getBlockEntity(worldPosition.relative(facing));
if (tile != null)
tile.getCapability(CapabilityBlutricity.BLUTRICITY_CAPABILITY, facing.getOpposite()).ifPresent(exStorage -> EnergyHelper.balancePower(exStorage, storage));
} else {
TileEntity tile = level.getBlockEntity(worldPosition.relative(facing).relative(state.getValue(BlockBlulectricCable.FACING).getOpposite()));
if (tile != null)
tile.getCapability(CapabilityBlutricity.BLUTRICITY_CAPABILITY, state.getValue(BlockBlulectricCable.FACING)).ifPresent(exStorage -> EnergyHelper.balancePower(exStorage, storage));
}
}
}
}
}
Aggregations