整合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,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using Cielonos.MainGame.Characters;
using Cielonos.MainGame.FunctionalAnimation;
using Sirenix.OdinInspector;
@@ -19,7 +21,7 @@ namespace Cielonos.MainGame.Inventory
private List<string> registeredFunctionNames = new List<string>();
[TitleGroup("Data")]
public List<FuncAnimData> fullBodyFuncAnims = new List<FuncAnimData>();
public FuncAnimDataCollection fullBodyFuncAnims;
public ContentData contentData;
public ViewObjectData viewObjectData;
public VFXData vfxData;
@@ -112,10 +114,10 @@ namespace Cielonos.MainGame.Inventory
public partial class ItemBase
{
protected RuntimeFuncAnim PlayTargetedAnimation(string animationName, CharacterBase target = null,
float adsorptionMinDistance = 1f, bool autoRotate = true,
FunctionalAnimationSubmodule funcAnimSm = null,
float animationSpeedMultiplier = 1f, float transitionDuration = 0.1f, bool isNormalizedTransition = false)
protected bool PlayTargetedAnimation(string animationName, CharacterBase target = null,
float adsorptionMinDistance = 1f, bool autoRotate = true, FunctionalAnimationSubmodule funcAnimSm = null,
float animationSpeedMultiplier = 1f, float transitionDuration = 0.1f, bool isNormalizedTransition = false,
string comboTreeName = "Main")
{
funcAnimSm ??= fullBodyFuncAnimSm;
@@ -124,7 +126,7 @@ namespace Cielonos.MainGame.Inventory
{
float actionCoolDownTime = fullBodyFuncAnimSm.currentData.Interval(IntervalType.ActionDisruption).StartTime /
fullBodyFuncAnimSm.currentPlaySpeedMultiplier;
comboSm?.SuspendThenSetup(actionCoolDownTime);
comboSm?[comboTreeName].SuspendThenSetup(actionCoolDownTime);
//GameManager.Player.eventController.GeneralAttackEvents.InvokeAllEvents();
if (target != null)
@@ -133,10 +135,10 @@ namespace Cielonos.MainGame.Inventory
funcAnimSm.currentRuntimeFuncAnim.AddUpdateUntilEvent(new SetRootAdsorptionAdjustment(target, adsorptionMinDistance));
}
return funcAnimSm.currentRuntimeFuncAnim;
return true;
}
return null;
return false;
}
}
@@ -144,7 +146,9 @@ namespace Cielonos.MainGame.Inventory
{
public void RegisterFullBodyFuncAnims()
{
foreach (FuncAnimData funcAnim in fullBodyFuncAnims)
if (fullBodyFuncAnims == null) return;
foreach (FuncAnimData funcAnim in fullBodyFuncAnims.animDataList)
{
player.animationSc.fullBodyFuncAnimSm.Add(funcAnim);
}
@@ -166,19 +170,23 @@ namespace Cielonos.MainGame.Inventory
}
}
protected virtual void RegisterFunctionsToAnimSc(params Action<RuntimeFuncAnim>[] functions)
protected virtual void RegisterFunctionsToAnimSc()
{
foreach (Action<RuntimeFuncAnim> function in functions)
foreach (CustomFunction function in fullBodyFuncAnims.preloadFunctions)
{
string functionName = function.Method.Name;
if (!player.animationSc.registeredFunctions.TryAdd(functionName, function))
string functionName = function.functionName;
string FAPF_functionName = new StringBuilder(functionName).Insert(0, "FAPF_").ToString();
MethodInfo method = GetType().GetMethod(FAPF_functionName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
if (method == null)
{
Debug.LogWarning($"Function {functionName} is already registered.");
}
else
{
registeredFunctionNames.Add(functionName);
}
Debug.LogWarning($"Function {functionName} not found in {this.GetType().Name}. Skipping registration.");
continue;
}
Action<RuntimeFuncAnim> action = Delegate.CreateDelegate(typeof(Action<RuntimeFuncAnim>), this, method) as Action<RuntimeFuncAnim>;
registeredFunctionNames.Add(functionName);
player.animationSc.registeredFunctions.TryAdd(functionName, action);
}
}
@@ -193,17 +201,5 @@ namespace Cielonos.MainGame.Inventory
}
registeredFunctionNames.Clear();
}
protected virtual void RemoveFunctionsFromAnimSc(params Action[] functions)
{
foreach (Action function in functions)
{
string functionName = function.Method.Name;
if (!player.animationSc.registeredFunctions.Remove(functionName))
{
Debug.LogWarning($"Function {functionName} is not found.");
}
}
}
}
}