整合SLSUtilities

This commit is contained in:
SoulliesOfficial
2026-01-17 11:35:49 -05:00
parent d94241f36c
commit 7ee2894a63
1338 changed files with 3051541 additions and 507034 deletions

View File

@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Cielonos.MainGame.Characters;
using SLSFramework.General;
using UnityEngine;
@@ -12,7 +12,7 @@ namespace SLSUtilities.FunctionalAnimation
public string animationName => funcAnimData.animInfo.animationName;
public bool isLooping => funcAnimData.animationClip.isLooping;
public CharacterBase executor;
public IFuncAnimExecutor executor;
public float currentPlayTime;
public bool isDisrupted;
public int dataAnimEventIndex;
@@ -23,8 +23,11 @@ namespace SLSUtilities.FunctionalAnimation
public VariableCollection runtimeVariables;
public Dictionary<string, bool> updateUntilStatus;
private List<FuncAnimEvent> playedEndEvents;
[NonSerialized]
public object currentActionParams;
public RuntimeFuncAnim(FuncAnimData funcAnimData, CharacterBase character)
public RuntimeFuncAnim(FuncAnimData funcAnimData, IFuncAnimExecutor character)
{
this.funcAnimData = funcAnimData;
this.executor = character;
@@ -43,10 +46,24 @@ namespace SLSUtilities.FunctionalAnimation
dataEvents.updateUntilEvents.ForEach(payload => payload.runtimeFuncAnim = this);
}
public T GetParams<T>() where T : class
{
if (currentActionParams is T typedParams)
{
return typedParams;
}
Debug.LogWarning(currentActionParams != null
? $"[RuntimeFuncAnim] 参数类型不匹配。期望: {typeof(T).Name}, 实际: {currentActionParams.GetType().Name}"
: $"[RuntimeFuncAnim] 尝试获取 {typeof(T).Name},但当前参数为空。");
return null;
}
public void AddAnimEvent(float time, FuncAnimPayloadBase payload, bool isEnd = false)
{
payload.runtimeFuncAnim = this;
runtimeEvents.animEvents.Add(new FuncAnimEvent(funcAnimData, time, payload, isEnd));
runtimeEvents.animEvents.Add(new FuncAnimEvent(time, payload, isEnd));
}
public void UpdateAnimEvent()