Skip to content

Commit

Permalink
Merge pull request #119 from qwe321qwe321qwe321/add-transform-extensions
Browse files Browse the repository at this point in the history
Add the functions that take Vector2 as input into LitMotionTransformExtensions.cs for 2D games.
  • Loading branch information
AnnulusGames committed Mar 24, 2024
2 parents 64796c9 + 1ee7978 commit b2bcc26
Show file tree
Hide file tree
Showing 2 changed files with 450 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,72 @@ public static MotionHandle BindToPositionZ<TOptions, TAdapter>(this MotionBuilde
t.position = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.position.xy
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToPositionXY<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.x = x.x;
p.y = x.y;
t.position = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.position.xz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToPositionXZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.x = x.x;
p.z = x.y;
t.position = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.position.yz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToPositionYZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.y = x.x;
p.z = x.y;
t.position = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localPosition
Expand Down Expand Up @@ -171,6 +237,72 @@ public static MotionHandle BindToLocalPositionZ<TOptions, TAdapter>(this MotionB
t.localPosition = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localPosition.xy
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalPositionXY<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.x = x.x;
p.y = x.y;
t.localPosition = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localPosition.xz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalPositionXZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.x = x.x;
p.z = x.y;
t.localPosition = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localPosition.yz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalPositionYZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.y = x.x;
p.z = x.y;
t.localPosition = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.rotation
Expand Down Expand Up @@ -291,6 +423,72 @@ public static MotionHandle BindToEulerAnglesZ<TOptions, TAdapter>(this MotionBui
t.eulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.eulerAngles.xy
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToEulerAnglesXY<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.x = x.x;
p.y = x.y;
t.eulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.eulerAngles.xz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToEulerAnglesXZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.x = x.x;
p.z = x.y;
t.eulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.eulerAngles.yz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToEulerAnglesYZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.y = x.x;
p.z = x.y;
t.eulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localEulerAngles
Expand Down Expand Up @@ -373,6 +571,72 @@ public static MotionHandle BindToLocalEulerAnglesZ<TOptions, TAdapter>(this Moti
t.localEulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localEulerAngles.xy
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalEulerAnglesXY<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.x = x.x;
p.y = x.y;
t.localEulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localEulerAngles.xz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalEulerAnglesXZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.x = x.x;
p.z = x.y;
t.localEulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localEulerAngles.yz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalEulerAnglesYZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.y = x.x;
p.z = x.y;
t.localEulerAngles = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localScale
Expand Down Expand Up @@ -455,5 +719,71 @@ public static MotionHandle BindToLocalScaleZ<TOptions, TAdapter>(this MotionBuil
t.localScale = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localScale.xy
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalScaleXY<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.x = x.x;
p.y = x.y;
t.localScale = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localScale.xz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalScaleXZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.x = x.x;
p.z = x.y;
t.localScale = p;
});
}

/// <summary>
/// Create a motion data and bind it to Transform.localScale.yz
/// </summary>
/// <typeparam name="TOptions">The type of special parameters given to the motion data</typeparam>
/// <typeparam name="TAdapter">The type of adapter that support value animation</typeparam>
/// <param name="builder">This builder</param>
/// <param name="transform"></param>
/// <returns>Handle of the created motion data.</returns>
public static MotionHandle BindToLocalScaleYZ<TOptions, TAdapter>(this MotionBuilder<Vector2, TOptions, TAdapter> builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter<Vector2, TOptions>
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.y = x.x;
p.z = x.y;
t.localScale = p;
});
}
}
}
Loading

0 comments on commit b2bcc26

Please sign in to comment.