summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/PowerTools/SpriteAnimEventHandler.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-12-30 20:59:04 +0800
committerchai <chaifix@163.com>2020-12-30 20:59:04 +0800
commite9ea621b93fbb58d9edfca8375918791637bbd52 (patch)
tree19ce3b1c1f2d51eda6878c9d0f2c9edc27f13650 /Client/Assembly-CSharp/PowerTools/SpriteAnimEventHandler.cs
+init
Diffstat (limited to 'Client/Assembly-CSharp/PowerTools/SpriteAnimEventHandler.cs')
-rw-r--r--Client/Assembly-CSharp/PowerTools/SpriteAnimEventHandler.cs111
1 files changed, 111 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/PowerTools/SpriteAnimEventHandler.cs b/Client/Assembly-CSharp/PowerTools/SpriteAnimEventHandler.cs
new file mode 100644
index 0000000..b97b8c2
--- /dev/null
+++ b/Client/Assembly-CSharp/PowerTools/SpriteAnimEventHandler.cs
@@ -0,0 +1,111 @@
+using System;
+using UnityEngine;
+
+namespace PowerTools
+{
+ [DisallowMultipleComponent]
+ public class SpriteAnimEventHandler : MonoBehaviour
+ {
+ private string m_eventWithObjectMessage;
+
+ private object m_eventWithObjectData;
+
+ public static class EventParser
+ {
+ public static readonly char MESSAGE_DELIMITER = '\t';
+
+ public static readonly string MESSAGE_NOPARAM = "_Anim";
+
+ public static readonly string MESSAGE_INT = "_AnimInt";
+
+ public static readonly string MESSAGE_FLOAT = "_AnimFloat";
+
+ public static readonly string MESSAGE_STRING = "_AnimString";
+
+ public static readonly string MESSAGE_OBJECT_FUNCNAME = "_AnimObjectFunc";
+
+ public static readonly string MESSAGE_OBJECT_DATA = "_AnimObjectData";
+
+ public static int ParseInt(ref string messageString)
+ {
+ int num = messageString.IndexOf(SpriteAnimEventHandler.EventParser.MESSAGE_DELIMITER);
+ int result = 0;
+ int.TryParse(messageString.Substring(num + 1), out result);
+ messageString = messageString.Substring(0, num);
+ return result;
+ }
+
+ public static float ParseFloat(ref string messageString)
+ {
+ int num = messageString.IndexOf(SpriteAnimEventHandler.EventParser.MESSAGE_DELIMITER);
+ float result = 0f;
+ float.TryParse(messageString.Substring(num + 1), out result);
+ messageString = messageString.Substring(0, num);
+ return result;
+ }
+
+ public static string ParseString(ref string messageString)
+ {
+ int num = messageString.IndexOf(SpriteAnimEventHandler.EventParser.MESSAGE_DELIMITER);
+ string result = messageString.Substring(num + 1);
+ messageString = messageString.Substring(0, num);
+ return result;
+ }
+ }
+
+ private void _Anim(string function)
+ {
+ base.SendMessageUpwards(function, SendMessageOptions.DontRequireReceiver);
+ }
+
+ private void _AnimInt(string messageString)
+ {
+ int num = SpriteAnimEventHandler.EventParser.ParseInt(ref messageString);
+ base.SendMessageUpwards(messageString, num, SendMessageOptions.DontRequireReceiver);
+ }
+
+ private void _AnimFloat(string messageString)
+ {
+ float num = SpriteAnimEventHandler.EventParser.ParseFloat(ref messageString);
+ base.SendMessageUpwards(messageString, num, SendMessageOptions.DontRequireReceiver);
+ }
+
+ private void _AnimString(string messageString)
+ {
+ string value = SpriteAnimEventHandler.EventParser.ParseString(ref messageString);
+ base.SendMessageUpwards(messageString, value, SendMessageOptions.DontRequireReceiver);
+ }
+
+ private void _AnimObjectFunc(string funcName)
+ {
+ if (this.m_eventWithObjectData != null)
+ {
+ base.SendMessageUpwards(funcName, this.m_eventWithObjectData, SendMessageOptions.DontRequireReceiver);
+ this.m_eventWithObjectMessage = null;
+ this.m_eventWithObjectData = null;
+ return;
+ }
+ if (!string.IsNullOrEmpty(this.m_eventWithObjectMessage))
+ {
+ Debug.LogError("Animation event with object parameter had no object");
+ }
+ this.m_eventWithObjectMessage = funcName;
+ }
+
+ private void _AnimObjectData(UnityEngine.Object data)
+ {
+ if (!string.IsNullOrEmpty(this.m_eventWithObjectMessage))
+ {
+ base.SendMessageUpwards(this.m_eventWithObjectMessage, data, SendMessageOptions.DontRequireReceiver);
+ this.m_eventWithObjectMessage = null;
+ this.m_eventWithObjectData = null;
+ return;
+ }
+ if (this.m_eventWithObjectData != null)
+ {
+ Debug.LogError("Animation event with object parameter had no object");
+ }
+ this.m_eventWithObjectData = data;
+ }
+ }
+}