|
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using SUISS.Storage;
- using UnityEngine;
-
- namespace SUISSEngine
- {
- public static class EdwinServerEventHandler
- {
- private static EdwinServerEventHandler.StorableStringList adjust_tokens_seen
- {
- get
- {
- if (!EdwinServerEventHandler._storage.ContainsKey("adjust_key"))
- {
- EdwinServerEventHandler._storage["adjust_key"] = new EdwinServerEventHandler.StorableStringList();
- }
- return (EdwinServerEventHandler.StorableStringList)EdwinServerEventHandler._storage["adjust_key"];
- }
- set
- {
- EdwinServerEventHandler._storage["adjust_key"] = value;
- }
- }
-
- //[DebuggerBrowsable(DebuggerBrowsableState.Never)]
- public static event Action<List<string>, string> RecievedEventTokens;
-
- private static void OnRecievedEventTokens(List<string> nonRegisteredTokens, string registeredToken)
- {
- Action<List<string>, string> recievedEventTokens = EdwinServerEventHandler.RecievedEventTokens;
- if (recievedEventTokens != null)
- {
- recievedEventTokens(nonRegisteredTokens, registeredToken);
- }
- }
-
- //[DebuggerBrowsable(DebuggerBrowsableState.Never)]
- public static event Action<string> RecievedNewNonRegisteredEventToken;
-
- private static void OnRecievedNewNonRegisteredEventToken(string arg)
- {
- Action<string> recievedNewNonRegisteredEventToken = EdwinServerEventHandler.RecievedNewNonRegisteredEventToken;
- if (recievedNewNonRegisteredEventToken != null)
- {
- recievedNewNonRegisteredEventToken(arg);
- }
- }
-
- public static void HandleAdjust(string adjustTokens, string registeredEvent)
- {
- string[] array = adjustTokens.Split(new char[]
- {
- ','
- });
- EdwinServerEventHandler.OnRecievedEventTokens((from tok in array
- where !tok.Equals(registeredEvent)
- select tok).ToList<string>(), registeredEvent);
- foreach (string text in array)
- {
- if (text == string.Empty)
- {
- UnityEngine.Debug.LogWarning("Edwin server sent empty adjust_tokens");
- }
- else if (!EdwinServerEventHandler.adjust_tokens_seen.Contains(text))
- {
- EdwinServerEventHandler.adjust_tokens_seen.Add(text);
- if (registeredEvent == null)
- {
- UnityEngine.Debug.LogError("Edwin server did not send a value for key 'adjust_registered_token'. Big problem; report to TMC immediately");
- if (EdwinServerEventHandler.adjust_tokens_seen.Count <= 1)
- {
- goto IL_D0;
- }
- }
- if (!text.Equals(registeredEvent))
- {
- EdwinServerEventHandler.OnRecievedNewNonRegisteredEventToken(text);
- }
- }
- IL_D0:;
- }
- }
-
- private static Dictionary<string, object> _storage
- {
- get
- {
- return Storage.Get(StorageLifecycle.Player).GetDictionary("edwinserverEventStorage");
- }
- }
-
- private const string ClassStorageKey = "edwinserverEventStorage";
-
- private const string adjustKey = "adjust_key";
-
- public class StorableStringList : StorableList<string>
- {
- }
- }
- }
|