mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-15 14:52:35 +02:00
35 lines
1.0 KiB
C#
35 lines
1.0 KiB
C#
using System;
|
|
using JetBrains.Annotations;
|
|
using Robust.Shared.Animations;
|
|
using Robust.Shared.Interfaces.GameObjects;
|
|
|
|
namespace Robust.Client.Animations
|
|
{
|
|
[UsedImplicitly]
|
|
public sealed class AnimationTrackComponentProperty : AnimationTrackProperty
|
|
{
|
|
public Type? ComponentType { get; set; }
|
|
public string? Property { get; set; }
|
|
|
|
protected override void ApplyProperty(object context, object value)
|
|
{
|
|
if (Property == null || ComponentType == null)
|
|
{
|
|
throw new InvalidOperationException("Must set parameters to non-null values.");
|
|
}
|
|
|
|
var entity = (IEntity) context;
|
|
var component = entity.GetComponent(ComponentType);
|
|
|
|
if (component is IAnimationProperties properties)
|
|
{
|
|
properties.SetAnimatableProperty(Property, value);
|
|
}
|
|
else
|
|
{
|
|
AnimationHelper.SetAnimatableProperty(component, Property, value);
|
|
}
|
|
}
|
|
}
|
|
}
|