return false;
if (j >= world.getHeight() - 1)
return false;
if (stack == null || !(stack.getItem() instanceof ItemTrack))
return false;
TrackSpec spec = getTrackSpec(stack);
ITrackInstance track = spec.createInstanceFromSpec();
boolean canPlace = world.canPlaceEntityOnSide(blockTrack, i, j, k, true, side, null, stack);
if (track instanceof ITrackCustomPlaced)
canPlace &= ((ITrackCustomPlaced) track).canPlaceRailAt(world, i, j, k);
else
canPlace &= world.isSideSolid(i, j - 1, k, ForgeDirection.UP);