Code/SbTween/Core/TweenSnapshot.cs
using Sandbox;

public class TweenSnapshot
{
	public Vector3 LocalPosition;
	public Rotation LocalRotation;
	public Vector3 LocalScale;
	public Color Tint;
	private ModelRenderer _renderer;
	private GameObject _target;

	public void Capture( GameObject obj )
	{
		_target = obj;
		LocalPosition = obj.LocalPosition;
		LocalRotation = obj.LocalRotation;
		LocalScale = obj.LocalScale;
		_renderer = obj.Components.Get<ModelRenderer>();
		if ( _renderer.IsValid() ) Tint = _renderer.Tint;
	}

	public void Restore()
	{
		if ( !_target.IsValid() ) return;
		_target.LocalPosition = LocalPosition;
		_target.LocalRotation = LocalRotation;
		_target.LocalScale = LocalScale;
		if ( _renderer.IsValid() ) _renderer.Tint = Tint;
	}
}