code: public Timer link(BlockPos pos, String stop, String start)
  	{
  		Timer t = stop(pos, stop);
  		//no stop anim, start from the beginning
  		if (t == null)
  			return start(pos, start);
  
  		Animation<Shape> anim = Iterables.getFirst(model.getAnimation(stop), null);
  		//no stop anim, start from beginning
  		if (anim == null)
  			return start(pos, start);
  
  		long duration = anim.getTransformation().getDuration();
  		//stop already done, start from the beginning
  		if (duration <= t.elapsedTime())
  			return start(pos, start);
  
  		t.setRelativeStart(t.elapsedTime() - duration);
  		addTimer(pos, start, t);
  		return t;
  	}
docs: Links two animations together.<br>
  The <i>start</i> animation will replace the <i>stop</i> one. The {@link Timer} for <i>start</i> will depend on the time spent by the
  <i>stop</i> animation.<br>
  The purpose is to have seamless transition between two reversed animations. (Ex: opening and closing of a door.)
  
  @param pos the pos
  @param stop the stop
  @param start the start
  @return the timer