@Override
  public void propagate() {

    if ((device instanceof IPart && ((IPart) device).getParent() == null)
        || device.getWorld() == null) return;

    for (MinecraftColor c : MinecraftColor.VALID_COLORS) {
      IRedstoneDevice dev;
      if (device instanceof IInsulatedRedwire) {
        dev = (IRedstoneDevice) device;
      } else {
        dev = BundledDeviceWrapper.wrap(device, c);
      }
      if (dev == null) continue;
      RedstoneApi.getInstance().getRedstonePropagator(dev, side).propagate();
    }
  }
  @Override
  public World getWorld() {

    return device.getWorld();
  }