Files

50 lines
1.3 KiB
C#

using System.Collections;
using AibisDream.Framework;
using AibisDream.SaveSystem;
using UnityEngine;
namespace AibisDream
{
public class SpriteActor : AbsActor
{
private string _stateName = "Idle";
protected override void InitInternal()
{
base.InitInternal();
_actorType = ActorType.Sprite;
ChangeState("Idle");
}
public override void ChangeState(string stateName)
{
_stateName = string.IsNullOrWhiteSpace(stateName) ? "Idle" : stateName;
spriteRenderer.sprite = ResourceKit.LoadAssetSync<Sprite>($"Sprite/{ActorName}[{_stateName}]");
}
public override ActorEntrySnapshotDto CaptureEntry()
{
var entry = new ActorEntrySnapshotDto();
FillBaseEntry(entry);
entry.stateName = _stateName;
return entry;
}
public override IEnumerator ApplyEntryAsync(ActorEntrySnapshotDto entry)
{
ApplyAlphaFromEntry(entry);
if (!string.IsNullOrEmpty(entry.stateName))
{
ChangeState(entry.stateName);
}
else
{
ChangeState("Idle");
}
yield break;
}
}
}