World/RelicPropAnimator.cs
using System;
namespace Prototype;
public enum RelicPropMode { Chest, Portal }
public sealed class RelicPropAnimator : Component
{
public RelicPropMode Mode { get; set; }
private Vector3 _origin;
private Rotation _rotation;
protected override void OnStart() { _origin = WorldPosition; _rotation = WorldRotation; }
protected override void OnUpdate()
{
if ( Mode == RelicPropMode.Portal )
{
WorldRotation = _rotation * Rotation.FromYaw( Time.Now * 22f );
WorldPosition = _origin + Vector3.Up * (MathF.Sin( Time.Now * 2.4f ) * 5f);
}
else
{
WorldPosition = _origin + Vector3.Up * (MathF.Sin( Time.Now * 1.8f ) * 2f);
}
}
}